<?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>50641</bug_id>
          
          <creation_ts>2010-12-07 12:12:55 -0800</creation_ts>
          <short_desc>ApplyStyleCommand::applyRelativeFontStyleChange should take EditingStyle*</short_desc>
          <delta_ts>2011-01-05 10:33:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>49956</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>buildbot</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>318383</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-07 12:12:55 -0800</bug_when>
    <thetext>This is a part of the effort to deploy EditingStyle in ApplyStyleCommand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318399</commentid>
    <comment_count>1</comment_count>
      <attachid>75836</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-07 12:35:01 -0800</bug_when>
    <thetext>Created attachment 75836
refactoring</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318425</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-07 14:02:28 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=75836) [details]
&gt; refactoring

Once this patch is in, we can get rid of -webkit-font-size-delta entirely in the next step.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318428</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-07 14:04:20 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Once this patch is in, we can get rid of -webkit-font-size-delta entirely in the next step.

How will you determine if Mac OS X WebKit clients are using -webkit-font-size-delta with the -[WbeView applyStyle:] method?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318440</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-07 14:12:31 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Once this patch is in, we can get rid of -webkit-font-size-delta entirely in the next step.
&gt; 
&gt; How will you determine if Mac OS X WebKit clients are using -webkit-font-size-delta with the -[WbeView applyStyle:] method?

Mn... that&apos;s a good point.  But we&apos;ve never exposed font-size-delta to the Web.  Unless people have looked at how we implemented executeFontSizeDelta, they will never know that property.  Also, CSSParser doesn&apos;t parse -webkit-font-size-delta, so they must be using CSSWebKitFontSizeDelta directly with px CSS primitive value.  Should we really worry about people digging into WebCore that deep?  I feel like any other changes we make to WebCore will cause a similar compatibility problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318450</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-07 15:06:04 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; But we&apos;ve never exposed font-size-delta to the Web.

True, but not completely relevant. This is about applications making direct use of WebKit, not the web.

&gt; Also, CSSParser doesn&apos;t parse -webkit-font-size-delta, so they must be using CSSWebKitFontSizeDelta directly with px CSS primitive value.

CSSParser is not relevant. To use -[WebView applyStyle:], programmers use the Objective-C DOM API to create a CSSStyleDeclaration object, not the CSS parser.

&gt; Unless people have looked at how we implemented executeFontSizeDelta, they will never know that property.

You may be overlooking some Mac-specific things. This is also used to make text smaller in response to the Smaller menu item in the Style submenu in the Format menu in the Mail application, for example, but not by using -[WebView applyStyle:] directly.

&gt; Should we really worry about people digging into WebCore that deep?

You may be right. We can probably cross our fingers and hope nobody does this. It’s not really about “digging deep” into WebCore, but it’s true that discovering this does require knowing about an internal CSS property name.

&gt; I feel like any other changes we make to WebCore will cause a similar compatibility problems.

I don’t agree. Most other changes don’t remove a publicly accessible feature as this one does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318470</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-12-07 15:56:41 -0800</bug_when>
    <thetext>Attachment 75836 did not build on win:
Build output: http://queues.webkit.org/results/6824084</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318513</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-07 17:08:42 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Unless people have looked at how we implemented executeFontSizeDelta, they will never know that property.
&gt; 
&gt; You may be overlooking some Mac-specific things. This is also used to make text smaller in response to the Smaller menu item in the Style submenu in the Format menu in the Mail application, for example, but not by using -[WebView applyStyle:] directly.

Oh, I didn&apos;t know that.  I was wondering what kind of web pages / App uses this feature.

&gt; &gt; Should we really worry about people digging into WebCore that deep?
&gt; 
&gt; You may be right. We can probably cross our fingers and hope nobody does this. It’s not really about “digging deep” into WebCore, but it’s true that discovering this does require knowing about an internal CSS property name.

We could leave it there if you want.  I wanted to get rid of it in order to avoid web apps start depending on this feature in the future because I really think this is an implementation detail that we shouldn&apos;t have exposed in the first place.  If there&apos;s a way to prevent new apps from using it without breaking the backward compatibility, I&apos;m more than happy to do it.

IMHO moving this property into EditingStyle is a good idea regardless of whether we&apos;re getting rid of this property or not because I want to isolate all editing code that touches CSSMutableStyleDeclaration into EditingStyle eventually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318621</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 21:48:40 -0800</bug_when>
    <thetext>Attachment 75836 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/update-webkit&apos;]&quot; exit_code: 2
Updating OpenSource
Incomplete data: Delta source ended unexpectedly at /usr/lib/git-core/git-svn line 5061

Died at WebKitTools/Scripts/update-webkit line 132.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322928</commentid>
    <comment_count>9</comment_count>
      <attachid>76709</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-15 16:43:55 -0800</bug_when>
    <thetext>Created attachment 76709
Don&apos;t initialize float in class declaration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322960</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-15 17:09:08 -0800</bug_when>
    <thetext>Attachment 76709 did not build on chromium:
Build output: http://queues.webkit.org/results/7091051</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323005</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-15 18:45:16 -0800</bug_when>
    <thetext>Attachment 76709 did not build on chromium:
Build output: http://queues.webkit.org/results/7110057</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323347</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-16 12:19:57 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Attachment 76709 [details] did not build on chromium:
&gt; Build output: http://queues.webkit.org/results/7110057

I&apos;m going to separate the #include change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323355</commentid>
    <comment_count>13</comment_count>
      <attachid>76800</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-16 12:33:06 -0800</bug_when>
    <thetext>Created attachment 76800
Removed #include changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328886</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-03 20:43:49 -0800</bug_when>
    <thetext>Could someone review my patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329128</commentid>
    <comment_count>15</comment_count>
      <attachid>76800</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-04 12:30:53 -0800</bug_when>
    <thetext>Comment on attachment 76800
Removed #include changes

LGTM. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329643</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-05 10:32:45 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 76800 [details])
&gt; LGTM. Thanks.

Thanks for the review, Eric.  Landing it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329645</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-05 10:33:03 -0800</bug_when>
    <thetext>Committed r75080: &lt;http://trac.webkit.org/changeset/75080&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75836</attachid>
            <date>2010-12-07 12:35:01 -0800</date>
            <delta_ts>2010-12-15 16:43:51 -0800</delta_ts>
            <desc>refactoring</desc>
            <filename>bug-50641-20101207123500.patch</filename>
            <type>text/plain</type>
            <size>12037</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzQ1MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTAtMTItMDcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXBw
bHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2Ugc2hvdWxkIHRha2Ug
RWRpdGluZ1N0eWxlKgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTA2NDEKKworICAgICAgICBNb2RpZmllZCBhcHBseVJlbGF0aXZlRm9udFN0eWxlQ2hh
bmdlIHRvIHRha2UgRWRpdGluZ1N0eWxlIGluc3RlYWQgb2YgQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24uCisgICAgICAgIEFsc28gZXh0cmFjdGVkIHRoZSBsb2dpYyB0byBvYnRhaW4gdGhlIGZv
bnQgc2l6ZSBkZWx0YSBmcm9tIEFwcGx5U3R5bGVDb21tYW5kIHRvIEVkaXRpbmdTdHlsZS4KKyAg
ICAgICAgVGhlIGZvbnQgc2l6ZSBkZWx0YSBpcyBub3cgc3RvcmVkIGFzIGEgbWVtYmVyIHZhcmlh
YmxlIG9mIEVkaXRpbmdTdHlsZSBhcyBzdXBwb3NlZCB0byBhIHByb3BlcnR5CisgICAgICAgIGlu
IENTU011dGFibGVTdHlsZURlY2xyYXRpb24gYXMgc29vbiBhcyBFZGl0aW5nU3R5bGUgaXMgaW5z
dGFudGlhdGVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcmUgYWRkZWQgc2luY2UgdGhpcyBp
cyBhIHJlZmFjdG9yaW5nLgorCisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6ZG9BcHBseSk6IENhbGxz
IGFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0
eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZSk6IFRha2VzIEVkaXRpbmdT
dHlsZS4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxl
OjpFZGl0aW5nU3R5bGUpOiBJbml0aWFsaXplcyBtX2ZvbnRTaXplRGVsdGEuCisgICAgICAgIChX
ZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmluaXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRpbmdTdHlsZTo6ZXh0cmFjdEZvbnRTaXplRGVsdGEpOiBFeHRyYWN0ZWQgZnJvbSBhcHBseVJl
bGF0aXZlRm9udFN0eWxlQ2hhbmdlLgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpp
c0VtcHR5KTogVGFrZXMgY2FyZSBvZiBtX2ZvbnRTaXplRGVsdGEuCisgICAgICAgIChXZWJDb3Jl
OjpFZGl0aW5nU3R5bGU6OnNldFN0eWxlKTogQ2FsbHMgZXh0cmFjdEZvbnRTaXplRGVsdGEuCisg
ICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6Om92ZXJyaWRlV2l0aFN0eWxlKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmNsZWFyKTogSW5pdGlhbGl6ZXMgbV9m
b250U2l6ZURlbHRhLgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpjb3B5KTogQ2Fs
bHMgZXh0cmFjdEZvbnRTaXplRGVsdGEuCisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6Zm9udFNpemVEZWx0YSk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpoYXNGb250U2l6ZURlbHRhKTogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKwogMjAxMC0xMi0wNyAgWWFlbCBBaGFy
b24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25p
byBHb21lcy4KSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAkocmV2aXNp
b24gNzM0NTEpCisrKyBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6ZG9B
cHBseSgpCiAgICAgICAgIC8vIEFwcGx5IGFueSByZW1haW5pbmcgc3R5bGVzIHRvIHRoZSBpbmxp
bmUgZWxlbWVudHMuCiAgICAgICAgIGlmICghbV9zdHlsZS0+aXNFbXB0eSgpIHx8IG1fc3R5bGVk
SW5saW5lRWxlbWVudCB8fCBtX2lzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24pIHsKICAg
ICAgICAgICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGUgPSBtX3N0
eWxlLT5zdHlsZSgpID8gbV9zdHlsZS0+c3R5bGUoKSA6IENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uOjpjcmVhdGUoKTsKLSAgICAgICAgICAgIGFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2Uo
c3R5bGUuZ2V0KCkpOworICAgICAgICAgICAgYXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZSht
X3N0eWxlLmdldCgpKTsKICAgICAgICAgICAgIGFwcGx5SW5saW5lU3R5bGUoc3R5bGUuZ2V0KCkp
OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtNjA3LDM1ICs2MDcsMTMgQEAgdm9pZCBB
cHBseVN0eWxlQ29tbWFuZDo6YXBwbHlCbG9ja1N0eWxlKAogICAgICAgICB1cGRhdGVTdGFydEVu
ZChzdGFydFJhbmdlLT5zdGFydFBvc2l0aW9uKCksIGVuZFJhbmdlLT5zdGFydFBvc2l0aW9uKCkp
OwogfQogCi0jZGVmaW5lIE5vRm9udERlbHRhICgwLjBmKQotI2RlZmluZSBNaW5pbXVtRm9udFNp
emUgKDAuMWYpCi0KLXZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb250U3R5
bGVDaGFuZ2UoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24gKnN0eWxlKQordm9pZCBBcHBseVN0
eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShFZGl0aW5nU3R5bGUqIHN0
eWxlKQogewotICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBzdHlsZS0+Z2V0UHJvcGVydHlD
U1NWYWx1ZShDU1NQcm9wZXJ0eUZvbnRTaXplKTsKLSAgICBpZiAodmFsdWUpIHsKLSAgICAgICAg
Ly8gRXhwbGljaXQgZm9udCBzaXplIG92ZXJyaWRlcyBhbnkgZGVsdGEuCi0gICAgICAgIHN0eWxl
LT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTaXplRGVsdGEpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQorICAgIHN0YXRpYyBjb25zdCBmbG9hdCBNaW5pbXVtRm9udFNpemUg
PSAwLjFmOwogCi0gICAgLy8gR2V0IHRoZSBhZGp1c3RtZW50IGFtb3VudCBvdXQgb2YgdGhlIHN0
eWxlLgotICAgIHZhbHVlID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlX
ZWJraXRGb250U2l6ZURlbHRhKTsKLSAgICBpZiAoIXZhbHVlKQotICAgICAgICByZXR1cm47Ci0g
ICAgZmxvYXQgYWRqdXN0bWVudCA9IE5vRm9udERlbHRhOwotICAgIGlmICh2YWx1ZS0+Y3NzVmFs
dWVUeXBlKCkgPT0gQ1NTVmFsdWU6OkNTU19QUklNSVRJVkVfVkFMVUUpIHsKLSAgICAgICAgQ1NT
UHJpbWl0aXZlVmFsdWUgKnByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUgKj4odmFsdWUuZ2V0KCkpOwotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPnByaW1p
dGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKSB7Ci0gICAgICAgICAgICAv
LyBPbmx5IFBYIGhhbmRsZWQgbm93LiBJZiB3ZSBoYW5kbGUgbW9yZSB0eXBlcyBpbiB0aGUgZnV0
dXJlLCBwZXJoYXBzCi0gICAgICAgICAgICAvLyBhIHN3aXRjaCBzdGF0ZW1lbnQgaGVyZSB3b3Vs
ZCBiZSBtb3JlIGFwcHJvcHJpYXRlLgotICAgICAgICAgICAgYWRqdXN0bWVudCA9IHByaW1pdGl2
ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgc3R5bGUtPnJl
bW92ZVByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0Rm9udFNpemVEZWx0YSk7Ci0gICAgaWYgKGFk
anVzdG1lbnQgPT0gTm9Gb250RGVsdGEpCisgICAgaWYgKCFzdHlsZSB8fCAhc3R5bGUtPmhhc0Zv
bnRTaXplRGVsdGEoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgUG9zaXRpb24gc3Rh
cnQgPSBzdGFydFBvc2l0aW9uKCk7CiAgICAgUG9zaXRpb24gZW5kID0gZW5kUG9zaXRpb24oKTsK
ICAgICBpZiAoY29tcGFyZVBvc2l0aW9ucyhlbmQsIHN0YXJ0KSA8IDApIHsKQEAgLTY0Myw3ICs2
MjEsNyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9uCiAgICAgICAg
IHN0YXJ0ID0gZW5kOwogICAgICAgICBlbmQgPSBzd2FwOwogICAgIH0KLSAgICAKKwogICAgIC8v
IEpvaW4gdXAgYW55IGFkamFjZW50IHRleHQgbm9kZXMuCiAgICAgaWYgKHN0YXJ0Lm5vZGUoKS0+
aXNUZXh0Tm9kZSgpKSB7CiAgICAgICAgIGpvaW5DaGlsZFRleHROb2RlcyhzdGFydC5ub2RlKCkt
PnBhcmVudE5vZGUoKSwgc3RhcnQsIGVuZCk7CkBAIC03MTQsNyArNjkyLDcgQEAgdm9pZCBBcHBs
eVN0eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbgogCiAgICAgICAgIENTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uKiBpbmxpbmVTdHlsZURlY2wgPSBlbGVtZW50LT5nZXRJbmxpbmVTdHlsZURl
Y2woKTsKICAgICAgICAgZmxvYXQgY3VycmVudEZvbnRTaXplID0gY29tcHV0ZWRGb250U2l6ZShu
b2RlKTsKLSAgICAgICAgZmxvYXQgZGVzaXJlZEZvbnRTaXplID0gbWF4KE1pbmltdW1Gb250U2l6
ZSwgc3RhcnRpbmdGb250U2l6ZXMuZ2V0KG5vZGUpICsgYWRqdXN0bWVudCk7CisgICAgICAgIGZs
b2F0IGRlc2lyZWRGb250U2l6ZSA9IG1heChNaW5pbXVtRm9udFNpemUsIHN0YXJ0aW5nRm9udFNp
emVzLmdldChub2RlKSArIHN0eWxlLT5mb250U2l6ZURlbHRhKCkpOwogICAgICAgICBSZWZQdHI8
Q1NTVmFsdWU+IHZhbHVlID0gaW5saW5lU3R5bGVEZWNsLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENT
U1Byb3BlcnR5Rm9udFNpemUpOwogICAgICAgICBpZiAodmFsdWUpIHsKICAgICAgICAgICAgIGlu
bGluZVN0eWxlRGVjbC0+cmVtb3ZlUHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSwgdHJ1ZSk7
CkBAIC03MzcsOSArNzE1LDYgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2
ZUZvbgogICAgICAgICByZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKHVuc3R5bGVkU3BhbnNb
aV0uZ2V0KCkpOwogfQogCi0jdW5kZWYgTm9Gb250RGVsdGEKLSN1bmRlZiBNaW5pbXVtRm9udFNp
emUKLQogc3RhdGljIE5vZGUqIGR1bW15U3BhbkFuY2VzdG9yRm9yTm9kZShjb25zdCBOb2RlKiBu
b2RlKQogewogICAgIHdoaWxlIChub2RlICYmICFpc1N0eWxlU3Bhbihub2RlKSkKSW5kZXg6IFdl
YkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCShyZXZpc2lvbiA3MzQ1MSkKKysrIFdlYkNvcmUv
ZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw3
IEBAIHByaXZhdGU6CiAKICAgICAvLyBzdHlsZS1hcHBsaWNhdGlvbiBoZWxwZXJzCiAgICAgdm9p
ZCBhcHBseUJsb2NrU3R5bGUoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qKTsKLSAgICB2b2lk
IGFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24q
KTsKKyAgICB2b2lkIGFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UoRWRpdGluZ1N0eWxlKik7
CiAgICAgdm9pZCBhcHBseUlubGluZVN0eWxlKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKik7
CiAgICAgdm9pZCBmaXhSYW5nZUFuZEFwcGx5SW5saW5lU3R5bGUoQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24qLCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9uJiBlbmQpOwog
ICAgIHZvaWQgYXBwbHlJbmxpbmVTdHlsZVRvTm9kZVJhbmdlKENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uKiwgTm9kZSogc3RhcnROb2RlLCBOb2RlKiBwYXN0RW5kTm9kZSk7CkluZGV4OiBXZWJD
b3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ1N0eWxlLmNwcAkocmV2aXNpb24gNzM0NTEpCisrKyBXZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsMTcgKzgyLDIwIEBAIHN0YXRp
YyBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmEKIAogRWRpdGluZ1N0eWxlOjpFZGl0
aW5nU3R5bGUoKQogICAgIDogbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZShmYWxzZSkK
KyAgICAsIG1fZm9udFNpemVEZWx0YShOb0ZvbnREZWx0YSkKIHsKIH0KIAogRWRpdGluZ1N0eWxl
OjpFZGl0aW5nU3R5bGUoTm9kZSogbm9kZSkKICAgICA6IG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0
Rm9udFNpemUoZmFsc2UpCisgICAgLCBtX2ZvbnRTaXplRGVsdGEoTm9Gb250RGVsdGEpCiB7CiAg
ICAgaW5pdChub2RlKTsKIH0KIAogRWRpdGluZ1N0eWxlOjpFZGl0aW5nU3R5bGUoY29uc3QgUG9z
aXRpb24mIHBvc2l0aW9uKQogICAgIDogbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZShm
YWxzZSkKKyAgICAsIG1fZm9udFNpemVEZWx0YShOb0ZvbnREZWx0YSkKIHsKICAgICBpbml0KHBv
c2l0aW9uLm5vZGUoKSk7CiB9CkBAIC0xMDAsNyArMTAzLDkgQEAgRWRpdGluZ1N0eWxlOjpFZGl0
aW5nU3R5bGUoY29uc3QgUG9zaXRpbwogRWRpdGluZ1N0eWxlOjpFZGl0aW5nU3R5bGUoY29uc3Qg
Q1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCiAgICAgOiBtX211dGFibGVTdHlsZShzdHlsZS0+
Y29weSgpKQogICAgICwgbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZShmYWxzZSkKKyAg
ICAsIG1fZm9udFNpemVEZWx0YShOb0ZvbnREZWx0YSkKIHsKKyAgICBleHRyYWN0Rm9udFNpemVE
ZWx0YSgpOwogfQogCiBFZGl0aW5nU3R5bGU6On5FZGl0aW5nU3R5bGUoKQpAQCAtMTE5LDYgKzEy
NCw3IEBAIHZvaWQgRWRpdGluZ1N0eWxlOjppbml0KE5vZGUqIG5vZGUpCiAgICAgfQogCiAgICAg
bV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZSA9IGNvbXB1dGVkU3R5bGVBdFBvc2l0aW9u
LT51c2VGaXhlZEZvbnREZWZhdWx0U2l6ZSgpOworICAgIGV4dHJhY3RGb250U2l6ZURlbHRhKCk7
CiB9CiAKIHZvaWQgRWRpdGluZ1N0eWxlOjpyZW1vdmVUZXh0RmlsbEFuZFN0cm9rZUNvbG9yc0lm
TmVlZGVkKFJlbmRlclN0eWxlKiByZW5kZXJTdHlsZSkKQEAgLTE0MSw5ICsxNDcsMzMgQEAgdm9p
ZCBFZGl0aW5nU3R5bGU6OnJlcGxhY2VGb250U2l6ZUJ5S2V5dwogICAgICAgICBtX211dGFibGVT
dHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSwgY29tcHV0ZWRTdHlsZS0+Z2V0
Rm9udFNpemVDU1NWYWx1ZVByZWZlcnJpbmdLZXl3b3JkKCktPmNzc1RleHQoKSk7CiB9CiAKK3Zv
aWQgRWRpdGluZ1N0eWxlOjpleHRyYWN0Rm9udFNpemVEZWx0YSgpCit7CisgICAgaWYgKG1fbXV0
YWJsZVN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5Rm9udFNpemUpKSB7Cisg
ICAgICAgIC8vIEV4cGxpY2l0IGZvbnQgc2l6ZSBvdmVycmlkZXMgYW55IGRlbHRhLgorICAgICAg
ICBtX211dGFibGVTdHlsZS0+cmVtb3ZlUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGb250U2l6
ZURlbHRhKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEdldCB0aGUgYWRqdXN0
bWVudCBhbW91bnQgb3V0IG9mIHRoZSBzdHlsZS4KKyAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVl
ID0gbV9tdXRhYmxlU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlXZWJraXRG
b250U2l6ZURlbHRhKTsKKyAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLT5jc3NWYWx1ZVR5cGUoKSAh
PSBDU1NWYWx1ZTo6Q1NTX1BSSU1JVElWRV9WQUxVRSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Q1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0
aXZlVmFsdWUqPih2YWx1ZS5nZXQoKSk7CisKKyAgICAvLyBPbmx5IFBYIGhhbmRsZWQgbm93LiBJ
ZiB3ZSBoYW5kbGUgbW9yZSB0eXBlcyBpbiB0aGUgZnV0dXJlLCBwZXJoYXBzCisgICAgLy8gYSBz
d2l0Y2ggc3RhdGVtZW50IGhlcmUgd291bGQgYmUgbW9yZSBhcHByb3ByaWF0ZS4KKyAgICBpZiAo
cHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1BYKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2ZvbnRTaXplRGVsdGEgPSBwcmltaXRpdmVW
YWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpOworICAgIG1fbXV0YWJsZVN0eWxlLT5yZW1vdmVQcm9wZXJ0
eShDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTaXplRGVsdGEpOworfQorCiBib29sIEVkaXRpbmdTdHls
ZTo6aXNFbXB0eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX211dGFibGVTdHlsZSB8fCBtX211
dGFibGVTdHlsZS0+aXNFbXB0eSgpOworICAgIHJldHVybiAoIW1fbXV0YWJsZVN0eWxlIHx8IG1f
bXV0YWJsZVN0eWxlLT5pc0VtcHR5KCkpICYmIG1fZm9udFNpemVEZWx0YSA9PSBOb0ZvbnREZWx0
YTsKIH0KIAogYm9vbCBFZGl0aW5nU3R5bGU6OnRleHREaXJlY3Rpb24oV3JpdGluZ0RpcmVjdGlv
biYgd3JpdGluZ0RpcmVjdGlvbikgY29uc3QKQEAgLTE3OSw2ICsyMDksNyBAQCB2b2lkIEVkaXRp
bmdTdHlsZTo6c2V0U3R5bGUoUGFzc1JlZlB0cjxDCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBi
ZSBhYmxlIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBvciBub3QgZm9udCBpcyBmaXhlZCB3aWR0aCBm
b3IgbXV0YWJsZSBzdHlsZS4KICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGZvbnQtZmFtaWx5IGlz
IG1vbm9zcGFjZSBhcyBpbiBGb250RGVzY3JpcHRpb24gYnV0IHdlIGRvbid0IHdhbnQgdG8gZHVw
bGljYXRlIGNvZGUgaGVyZS4KICAgICBtX3Nob3VsZFVzZUZpeGVkRGVmYXVsdEZvbnRTaXplID0g
ZmFsc2U7CisgICAgZXh0cmFjdEZvbnRTaXplRGVsdGEoKTsKIH0KIAogdm9pZCBFZGl0aW5nU3R5
bGU6Om92ZXJyaWRlV2l0aFN0eWxlKGNvbnN0IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBz
dHlsZSkKQEAgLTE4OCwxMiArMjE5LDE0IEBAIHZvaWQgRWRpdGluZ1N0eWxlOjpvdmVycmlkZVdp
dGhTdHlsZShjb24KICAgICBpZiAoIW1fbXV0YWJsZVN0eWxlKQogICAgICAgICBtX211dGFibGVT
dHlsZSA9IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoKTsKICAgICBtX211dGFi
bGVTdHlsZS0+bWVyZ2Uoc3R5bGUpOworICAgIGV4dHJhY3RGb250U2l6ZURlbHRhKCk7CiB9CiAK
IHZvaWQgRWRpdGluZ1N0eWxlOjpjbGVhcigpCiB7CiAgICAgbV9tdXRhYmxlU3R5bGUuY2xlYXIo
KTsKICAgICBtX3Nob3VsZFVzZUZpeGVkRGVmYXVsdEZvbnRTaXplID0gZmFsc2U7CisgICAgbV9m
b250U2l6ZURlbHRhID0gTm9Gb250RGVsdGE7CiB9CiAKIFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxl
PiBFZGl0aW5nU3R5bGU6OmNvcHkoKSBjb25zdApAQCAtMjAyLDYgKzIzNSw3IEBAIFBhc3NSZWZQ
dHI8RWRpdGluZ1N0eWxlPiBFZGl0aW5nU3R5bGU6OmMKICAgICBpZiAobV9tdXRhYmxlU3R5bGUp
CiAgICAgICAgIGNvcHktPm1fbXV0YWJsZVN0eWxlID0gbV9tdXRhYmxlU3R5bGUtPmNvcHkoKTsK
ICAgICBjb3B5LT5tX3Nob3VsZFVzZUZpeGVkRGVmYXVsdEZvbnRTaXplID0gbV9zaG91bGRVc2VG
aXhlZERlZmF1bHRGb250U2l6ZTsKKyAgICBjb3B5LT5tX2ZvbnRTaXplRGVsdGEgPSBtX2ZvbnRT
aXplRGVsdGE7CiAgICAgcmV0dXJuIGNvcHk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxl
LmgJKHJldmlzaW9uIDczNDUxKQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAjaWZuZGVmIEVkaXRpbmdTdHlsZV9oCiAj
ZGVmaW5lIEVkaXRpbmdTdHlsZV9oCiAKLSNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IlBvc2l0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDcgKzQzLDkgQEAgZW51
bSBXcml0aW5nRGlyZWN0aW9uIHsgTmF0dXJhbFdyaXRpbmdEaQogCiBjbGFzcyBFZGl0aW5nU3R5
bGUgOiBwdWJsaWMgUmVmQ291bnRlZDxFZGl0aW5nU3R5bGU+IHsKIHB1YmxpYzoKLSAgICAKKwor
ICAgIHN0YXRpYyBjb25zdCBmbG9hdCBOb0ZvbnREZWx0YSA9IDAuMGY7CisKICAgICBlbnVtIFNo
b3VsZFByZXNlcnZlV3JpdGluZ0RpcmVjdGlvbiB7IFByZXNlcnZlV3JpdGluZ0RpcmVjdGlvbiwg
RG9Ob3RQcmVzZXJ2ZVdyaXRpbmdEaXJlY3Rpb24gfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEVkaXRpbmdTdHlsZT4gY3JlYXRlKCkKQEAgLTgzLDYgKzg0LDkgQEAgcHVibGljOgogICAgIHZv
aWQgcmVtb3ZlTm9uRWRpdGluZ1Byb3BlcnRpZXMoKTsKICAgICB2b2lkIHByZXBhcmVUb0FwcGx5
QXQoY29uc3QgUG9zaXRpb24mLCBTaG91bGRQcmVzZXJ2ZVdyaXRpbmdEaXJlY3Rpb24gPSBEb05v
dFByZXNlcnZlV3JpdGluZ0RpcmVjdGlvbik7CiAKKyAgICBmbG9hdCBmb250U2l6ZURlbHRhKCkg
Y29uc3QgeyByZXR1cm4gbV9mb250U2l6ZURlbHRhOyB9CisgICAgYm9vbCBoYXNGb250U2l6ZURl
bHRhKCkgY29uc3QgeyByZXR1cm4gbV9mb250U2l6ZURlbHRhICE9IE5vRm9udERlbHRhOyB9CisK
IHByaXZhdGU6CiAgICAgRWRpdGluZ1N0eWxlKCk7CiAgICAgRWRpdGluZ1N0eWxlKE5vZGUqKTsK
QEAgLTkxLDkgKzk1LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0KE5vZGUqKTsKICAgICB2
b2lkIHJlbW92ZVRleHRGaWxsQW5kU3Ryb2tlQ29sb3JzSWZOZWVkZWQoUmVuZGVyU3R5bGUqKTsK
ICAgICB2b2lkIHJlcGxhY2VGb250U2l6ZUJ5S2V5d29yZElmUG9zc2libGUoUmVuZGVyU3R5bGUq
LCBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24qKTsKKyAgICB2b2lkIGV4dHJhY3RGb250U2l6
ZURlbHRhKCk7CiAKICAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IG1fbXV0
YWJsZVN0eWxlOwogICAgIGJvb2wgbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZTsKKyAg
ICBmbG9hdCBtX2ZvbnRTaXplRGVsdGE7CiB9OwogCiBQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4g
ZWRpdGluZ1N0eWxlSW5jbHVkaW5nVHlwaW5nU3R5bGUoY29uc3QgUG9zaXRpb24mKTsKSW5kZXg6
IFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgJKHJldmlzaW9uIDczNDUxKQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJkQWNjZXNz
UG9saWN5LmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJDb3JyZWN0aW9uUGFuZWxJ
bmZvLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXIuaCIKICNpbmNsdWRlICJFZGl0QWN0aW9u
LmgiCiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yLmgiCiAjaW5jbHVkZSAiRWRpdG9yRGVsZXRl
QWN0aW9uLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76709</attachid>
            <date>2010-12-15 16:43:55 -0800</date>
            <delta_ts>2010-12-16 12:33:02 -0800</delta_ts>
            <desc>Don&apos;t initialize float in class declaration</desc>
            <filename>bug-50641-20101215164353.patch</filename>
            <type>text/plain</type>
            <size>12726</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTE2YzJjNTY5NzQ0MDNlNmM4Yjc4ZTc0NTk1YjY1YjhmZTA5ZDFhYi4uODM4NGVlNmJhYzZkNTY1
NWIyYzk4YTQ0ZWI3ZjRmY2FhNGQxMWZlYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0xMi0xNSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZv
bnRTdHlsZUNoYW5nZSBzaG91bGQgdGFrZSBFZGl0aW5nU3R5bGUqCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDY0MQorCisgICAgICAgIE1vZGlmaWVk
IGFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UgdG8gdGFrZSBFZGl0aW5nU3R5bGUgaW5zdGVh
ZCBvZiBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi4KKyAgICAgICAgQWxzbyBleHRyYWN0ZWQg
dGhlIGxvZ2ljIHRvIG9idGFpbiB0aGUgZm9udCBzaXplIGRlbHRhIGZyb20gQXBwbHlTdHlsZUNv
bW1hbmQgdG8gRWRpdGluZ1N0eWxlLgorICAgICAgICBUaGUgZm9udCBzaXplIGRlbHRhIGlzIG5v
dyBzdG9yZWQgYXMgYSBtZW1iZXIgdmFyaWFibGUgb2YgRWRpdGluZ1N0eWxlIGFzIHN1cHBvc2Vk
IHRvIGEgcHJvcGVydHkKKyAgICAgICAgaW4gQ1NTTXV0YWJsZVN0eWxlRGVjbHJhdGlvbiBhcyBz
b29uIGFzIEVkaXRpbmdTdHlsZSBpcyBpbnN0YW50aWF0ZWQuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIGFyZSBhZGRlZCBzaW5jZSB0aGlzIGlzIGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBl
ZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5
bGVDb21tYW5kOjpkb0FwcGx5KTogQ2FsbHMgYXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZS4K
KyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0
eWxlQ2hhbmdlKTogVGFrZXMgRWRpdGluZ1N0eWxlLgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OkVkaXRpbmdTdHlsZSk6IEluaXRpYWxpemVzIG1f
Zm9udFNpemVEZWx0YS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6aW5pdCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpleHRyYWN0Rm9udFNpemVEZWx0
YSk6IEV4dHJhY3RlZCBmcm9tIGFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UuCisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmlzRW1wdHkpOiBUYWtlcyBjYXJlIG9mIG1fZm9udFNp
emVEZWx0YS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6c2V0U3R5bGUpOiBDYWxs
cyBleHRyYWN0Rm9udFNpemVEZWx0YS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6
b3ZlcnJpZGVXaXRoU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHls
ZTo6Y2xlYXIpOiBJbml0aWFsaXplcyBtX2ZvbnRTaXplRGVsdGEuCisgICAgICAgIChXZWJDb3Jl
OjpFZGl0aW5nU3R5bGU6OmNvcHkpOiBDYWxscyBleHRyYWN0Rm9udFNpemVEZWx0YS4KKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0
eWxlOjpmb250U2l6ZURlbHRhKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5
bGU6Omhhc0ZvbnRTaXplRGVsdGEpOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5o
OgorCiAyMDEwLTEyLTE1ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvV2ViQ29yZS9lZGl0aW5n
L0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCAxOTczYTk0NmRiMzZkNGFiZDliNmM2ZjgzNDE0
NGFhNjUzNDJjMDg1Li43MWI2YTI3MjBhOWVkZmRjZjdjMDVlZjU1YWRiMmFmMDYyOGFkODcwIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1dl
YkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2
b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgLy8gQXBwbHkgYW55IHJl
bWFpbmluZyBzdHlsZXMgdG8gdGhlIGlubGluZSBlbGVtZW50cy4KICAgICAgICAgaWYgKCFtX3N0
eWxlLT5pc0VtcHR5KCkgfHwgbV9zdHlsZWRJbmxpbmVFbGVtZW50IHx8IG1faXNJbmxpbmVFbGVt
ZW50VG9SZW1vdmVGdW5jdGlvbikgewogICAgICAgICAgICAgUmVmUHRyPENTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uPiBzdHlsZSA9IG1fc3R5bGUtPnN0eWxlKCkgPyBtX3N0eWxlLT5zdHlsZSgp
IDogQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZSgpOwotICAgICAgICAgICAgYXBw
bHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShzdHlsZS5nZXQoKSk7CisgICAgICAgICAgICBhcHBs
eVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKG1fc3R5bGUuZ2V0KCkpOwogICAgICAgICAgICAgYXBw
bHlJbmxpbmVTdHlsZShzdHlsZS5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBA
IC02MDcsMzUgKzYwNywxMyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseUJsb2NrU3R5
bGUoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24gKnN0eWxlKQogICAgICAgICB1cGRhdGVTdGFy
dEVuZChzdGFydFJhbmdlLT5zdGFydFBvc2l0aW9uKCksIGVuZFJhbmdlLT5zdGFydFBvc2l0aW9u
KCkpOwogfQogCi0jZGVmaW5lIE5vRm9udERlbHRhICgwLjBmKQotI2RlZmluZSBNaW5pbXVtRm9u
dFNpemUgKDAuMWYpCi0KLXZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb250
U3R5bGVDaGFuZ2UoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24gKnN0eWxlKQordm9pZCBBcHBs
eVN0eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShFZGl0aW5nU3R5bGUq
IHN0eWxlKQogewotICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBzdHlsZS0+Z2V0UHJvcGVy
dHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUZvbnRTaXplKTsKLSAgICBpZiAodmFsdWUpIHsKLSAgICAg
ICAgLy8gRXhwbGljaXQgZm9udCBzaXplIG92ZXJyaWRlcyBhbnkgZGVsdGEuCi0gICAgICAgIHN0
eWxlLT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTaXplRGVsdGEpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQorICAgIHN0YXRpYyBjb25zdCBmbG9hdCBNaW5pbXVtRm9udFNp
emUgPSAwLjFmOwogCi0gICAgLy8gR2V0IHRoZSBhZGp1c3RtZW50IGFtb3VudCBvdXQgb2YgdGhl
IHN0eWxlLgotICAgIHZhbHVlID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVy
dHlXZWJraXRGb250U2l6ZURlbHRhKTsKLSAgICBpZiAoIXZhbHVlKQotICAgICAgICByZXR1cm47
Ci0gICAgZmxvYXQgYWRqdXN0bWVudCA9IE5vRm9udERlbHRhOwotICAgIGlmICh2YWx1ZS0+Y3Nz
VmFsdWVUeXBlKCkgPT0gQ1NTVmFsdWU6OkNTU19QUklNSVRJVkVfVkFMVUUpIHsKLSAgICAgICAg
Q1NTUHJpbWl0aXZlVmFsdWUgKnByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0
aXZlVmFsdWUgKj4odmFsdWUuZ2V0KCkpOwotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPnBy
aW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKSB7Ci0gICAgICAgICAg
ICAvLyBPbmx5IFBYIGhhbmRsZWQgbm93LiBJZiB3ZSBoYW5kbGUgbW9yZSB0eXBlcyBpbiB0aGUg
ZnV0dXJlLCBwZXJoYXBzCi0gICAgICAgICAgICAvLyBhIHN3aXRjaCBzdGF0ZW1lbnQgaGVyZSB3
b3VsZCBiZSBtb3JlIGFwcHJvcHJpYXRlLgotICAgICAgICAgICAgYWRqdXN0bWVudCA9IHByaW1p
dGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgc3R5bGUt
PnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0Rm9udFNpemVEZWx0YSk7Ci0gICAgaWYg
KGFkanVzdG1lbnQgPT0gTm9Gb250RGVsdGEpCisgICAgaWYgKCFzdHlsZSB8fCAhc3R5bGUtPmhh
c0ZvbnRTaXplRGVsdGEoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgUG9zaXRpb24g
c3RhcnQgPSBzdGFydFBvc2l0aW9uKCk7CiAgICAgUG9zaXRpb24gZW5kID0gZW5kUG9zaXRpb24o
KTsKICAgICBpZiAoY29tcGFyZVBvc2l0aW9ucyhlbmQsIHN0YXJ0KSA8IDApIHsKQEAgLTY0Myw3
ICs2MjEsNyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxl
Q2hhbmdlKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uCiAgICAgICAgIHN0YXJ0ID0gZW5kOwog
ICAgICAgICBlbmQgPSBzd2FwOwogICAgIH0KLSAgICAKKwogICAgIC8vIEpvaW4gdXAgYW55IGFk
amFjZW50IHRleHQgbm9kZXMuCiAgICAgaWYgKHN0YXJ0Lm5vZGUoKS0+aXNUZXh0Tm9kZSgpKSB7
CiAgICAgICAgIGpvaW5DaGlsZFRleHROb2RlcyhzdGFydC5ub2RlKCktPnBhcmVudE5vZGUoKSwg
c3RhcnQsIGVuZCk7CkBAIC03MTQsNyArNjkyLDcgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6
YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgog
CiAgICAgICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBpbmxpbmVTdHlsZURlY2wgPSBl
bGVtZW50LT5nZXRJbmxpbmVTdHlsZURlY2woKTsKICAgICAgICAgZmxvYXQgY3VycmVudEZvbnRT
aXplID0gY29tcHV0ZWRGb250U2l6ZShub2RlKTsKLSAgICAgICAgZmxvYXQgZGVzaXJlZEZvbnRT
aXplID0gbWF4KE1pbmltdW1Gb250U2l6ZSwgc3RhcnRpbmdGb250U2l6ZXMuZ2V0KG5vZGUpICsg
YWRqdXN0bWVudCk7CisgICAgICAgIGZsb2F0IGRlc2lyZWRGb250U2l6ZSA9IG1heChNaW5pbXVt
Rm9udFNpemUsIHN0YXJ0aW5nRm9udFNpemVzLmdldChub2RlKSArIHN0eWxlLT5mb250U2l6ZURl
bHRhKCkpOwogICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gaW5saW5lU3R5bGVEZWNs
LT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5Rm9udFNpemUpOwogICAgICAgICBpZiAo
dmFsdWUpIHsKICAgICAgICAgICAgIGlubGluZVN0eWxlRGVjbC0+cmVtb3ZlUHJvcGVydHkoQ1NT
UHJvcGVydHlGb250U2l6ZSwgdHJ1ZSk7CkBAIC03MzcsOSArNzE1LDYgQEAgdm9pZCBBcHBseVN0
eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbgogICAgICAgICByZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKHVuc3R5bGVk
U3BhbnNbaV0uZ2V0KCkpOwogfQogCi0jdW5kZWYgTm9Gb250RGVsdGEKLSN1bmRlZiBNaW5pbXVt
Rm9udFNpemUKLQogc3RhdGljIE5vZGUqIGR1bW15U3BhbkFuY2VzdG9yRm9yTm9kZShjb25zdCBO
b2RlKiBub2RlKQogewogICAgIHdoaWxlIChub2RlICYmICFpc1N0eWxlU3Bhbihub2RlKSkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oIGIvV2ViQ29yZS9l
ZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKaW5kZXggNDQxOTdjYzEwNjRkMjg2YTQ0Mjc0M2Zj
YmEzOTYzNDcxYmNjYjcyZS4uNWYzNjliYWM1ZDg0OWM4NjkxOTMzZmFlOGFiODkyYzZjNjJkM2Vi
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKKysrIGIv
V2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKQEAgLTkxLDcgKzkxLDcgQEAgcHJp
dmF0ZToKIAogICAgIC8vIHN0eWxlLWFwcGxpY2F0aW9uIGhlbHBlcnMKICAgICB2b2lkIGFwcGx5
QmxvY2tTdHlsZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiopOwotICAgIHZvaWQgYXBwbHlS
ZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiopOworICAg
IHZvaWQgYXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShFZGl0aW5nU3R5bGUqKTsKICAgICB2
b2lkIGFwcGx5SW5saW5lU3R5bGUoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qKTsKICAgICB2
b2lkIGZpeFJhbmdlQW5kQXBwbHlJbmxpbmVTdHlsZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
biosIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCk7CiAgICAgdm9p
ZCBhcHBseUlubGluZVN0eWxlVG9Ob2RlUmFuZ2UoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24q
LCBOb2RlKiBzdGFydE5vZGUsIE5vZGUqIHBhc3RFbmROb2RlKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKaW5kZXggYzQ2YzA3NWE2ZmRhYjk1OGIwYzNlNzE2NDM2NjIzNDA4YjM1MTA1MC4uYzNk
YTg3MzgwOTU1M2VkNzgwN2YzY2M1NTkzNzUxMjhlZGFlODg4YyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHAKQEAgLTgwLDE5ICs4MCwyNCBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbj4gZWRpdGluZ1N0eWxlRnJvbUNvbXB1dGVkU3R5bGUoUGFzcwogICAg
IHJldHVybiBjb3B5RWRpdGluZ1Byb3BlcnRpZXMoc3R5bGUuZ2V0KCkpOwogfQogCitmbG9hdCBF
ZGl0aW5nU3R5bGU6Ok5vRm9udERlbHRhID0gMC4wZjsKKwogRWRpdGluZ1N0eWxlOjpFZGl0aW5n
U3R5bGUoKQogICAgIDogbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZShmYWxzZSkKKyAg
ICAsIG1fZm9udFNpemVEZWx0YShOb0ZvbnREZWx0YSkKIHsKIH0KIAogRWRpdGluZ1N0eWxlOjpF
ZGl0aW5nU3R5bGUoTm9kZSogbm9kZSkKICAgICA6IG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0Rm9u
dFNpemUoZmFsc2UpCisgICAgLCBtX2ZvbnRTaXplRGVsdGEoTm9Gb250RGVsdGEpCiB7CiAgICAg
aW5pdChub2RlKTsKIH0KIAogRWRpdGluZ1N0eWxlOjpFZGl0aW5nU3R5bGUoY29uc3QgUG9zaXRp
b24mIHBvc2l0aW9uKQogICAgIDogbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZShmYWxz
ZSkKKyAgICAsIG1fZm9udFNpemVEZWx0YShOb0ZvbnREZWx0YSkKIHsKICAgICBpbml0KHBvc2l0
aW9uLm5vZGUoKSk7CiB9CkBAIC0xMDAsNyArMTA1LDkgQEAgRWRpdGluZ1N0eWxlOjpFZGl0aW5n
U3R5bGUoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQogRWRpdGluZ1N0eWxlOjpFZGl0aW5nU3R5
bGUoY29uc3QgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCiAgICAgOiBtX211dGFibGVTdHls
ZShzdHlsZS0+Y29weSgpKQogICAgICwgbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZShm
YWxzZSkKKyAgICAsIG1fZm9udFNpemVEZWx0YShOb0ZvbnREZWx0YSkKIHsKKyAgICBleHRyYWN0
Rm9udFNpemVEZWx0YSgpOwogfQogCiBFZGl0aW5nU3R5bGU6On5FZGl0aW5nU3R5bGUoKQpAQCAt
MTE5LDYgKzEyNiw3IEBAIHZvaWQgRWRpdGluZ1N0eWxlOjppbml0KE5vZGUqIG5vZGUpCiAgICAg
fQogCiAgICAgbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZSA9IGNvbXB1dGVkU3R5bGVB
dFBvc2l0aW9uLT51c2VGaXhlZEZvbnREZWZhdWx0U2l6ZSgpOworICAgIGV4dHJhY3RGb250U2l6
ZURlbHRhKCk7CiB9CiAKIHZvaWQgRWRpdGluZ1N0eWxlOjpyZW1vdmVUZXh0RmlsbEFuZFN0cm9r
ZUNvbG9yc0lmTmVlZGVkKFJlbmRlclN0eWxlKiByZW5kZXJTdHlsZSkKQEAgLTE0MSw5ICsxNDks
MzMgQEAgdm9pZCBFZGl0aW5nU3R5bGU6OnJlcGxhY2VGb250U2l6ZUJ5S2V5d29yZElmUG9zc2li
bGUoUmVuZGVyU3R5bGUqIHJlbmRlclN0eWxlLAogICAgICAgICBtX211dGFibGVTdHlsZS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSwgY29tcHV0ZWRTdHlsZS0+Z2V0Rm9udFNpemVD
U1NWYWx1ZVByZWZlcnJpbmdLZXl3b3JkKCktPmNzc1RleHQoKSk7CiB9CiAKK3ZvaWQgRWRpdGlu
Z1N0eWxlOjpleHRyYWN0Rm9udFNpemVEZWx0YSgpCit7CisgICAgaWYgKG1fbXV0YWJsZVN0eWxl
LT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5Rm9udFNpemUpKSB7CisgICAgICAgIC8v
IEV4cGxpY2l0IGZvbnQgc2l6ZSBvdmVycmlkZXMgYW55IGRlbHRhLgorICAgICAgICBtX211dGFi
bGVTdHlsZS0+cmVtb3ZlUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGb250U2l6ZURlbHRhKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEdldCB0aGUgYWRqdXN0bWVudCBhbW91
bnQgb3V0IG9mIHRoZSBzdHlsZS4KKyAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gbV9tdXRh
YmxlU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlXZWJraXRGb250U2l6ZURl
bHRhKTsKKyAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLT5jc3NWYWx1ZVR5cGUoKSAhPSBDU1NWYWx1
ZTo6Q1NTX1BSSU1JVElWRV9WQUxVRSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ1NTUHJpbWl0
aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
Pih2YWx1ZS5nZXQoKSk7CisKKyAgICAvLyBPbmx5IFBYIGhhbmRsZWQgbm93LiBJZiB3ZSBoYW5k
bGUgbW9yZSB0eXBlcyBpbiB0aGUgZnV0dXJlLCBwZXJoYXBzCisgICAgLy8gYSBzd2l0Y2ggc3Rh
dGVtZW50IGhlcmUgd291bGQgYmUgbW9yZSBhcHByb3ByaWF0ZS4KKyAgICBpZiAocHJpbWl0aXZl
VmFsdWUtPnByaW1pdGl2ZVR5cGUoKSAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2ZvbnRTaXplRGVsdGEgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0
RmxvYXRWYWx1ZSgpOworICAgIG1fbXV0YWJsZVN0eWxlLT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9w
ZXJ0eVdlYmtpdEZvbnRTaXplRGVsdGEpOworfQorCiBib29sIEVkaXRpbmdTdHlsZTo6aXNFbXB0
eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX211dGFibGVTdHlsZSB8fCBtX211dGFibGVTdHls
ZS0+aXNFbXB0eSgpOworICAgIHJldHVybiAoIW1fbXV0YWJsZVN0eWxlIHx8IG1fbXV0YWJsZVN0
eWxlLT5pc0VtcHR5KCkpICYmIG1fZm9udFNpemVEZWx0YSA9PSBOb0ZvbnREZWx0YTsKIH0KIAog
Ym9vbCBFZGl0aW5nU3R5bGU6OnRleHREaXJlY3Rpb24oV3JpdGluZ0RpcmVjdGlvbiYgd3JpdGlu
Z0RpcmVjdGlvbikgY29uc3QKQEAgLTE3OSw2ICsyMTEsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6
c2V0U3R5bGUoUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGUpCiAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBhYmxlIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBvciBu
b3QgZm9udCBpcyBmaXhlZCB3aWR0aCBmb3IgbXV0YWJsZSBzdHlsZS4KICAgICAvLyBXZSBuZWVk
IHRvIGNoZWNrIGZvbnQtZmFtaWx5IGlzIG1vbm9zcGFjZSBhcyBpbiBGb250RGVzY3JpcHRpb24g
YnV0IHdlIGRvbid0IHdhbnQgdG8gZHVwbGljYXRlIGNvZGUgaGVyZS4KICAgICBtX3Nob3VsZFVz
ZUZpeGVkRGVmYXVsdEZvbnRTaXplID0gZmFsc2U7CisgICAgZXh0cmFjdEZvbnRTaXplRGVsdGEo
KTsKIH0KIAogdm9pZCBFZGl0aW5nU3R5bGU6Om92ZXJyaWRlV2l0aFN0eWxlKGNvbnN0IENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkKQEAgLTE4OCwxMiArMjIxLDE0IEBAIHZvaWQg
RWRpdGluZ1N0eWxlOjpvdmVycmlkZVdpdGhTdHlsZShjb25zdCBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbiogc3R5bGUpCiAgICAgaWYgKCFtX211dGFibGVTdHlsZSkKICAgICAgICAgbV9tdXRh
YmxlU3R5bGUgPSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCk7CiAgICAgbV9t
dXRhYmxlU3R5bGUtPm1lcmdlKHN0eWxlKTsKKyAgICBleHRyYWN0Rm9udFNpemVEZWx0YSgpOwog
fQogCiB2b2lkIEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewogICAgIG1fbXV0YWJsZVN0eWxlLmNs
ZWFyKCk7CiAgICAgbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZSA9IGZhbHNlOworICAg
IG1fZm9udFNpemVEZWx0YSA9IE5vRm9udERlbHRhOwogfQogCiBQYXNzUmVmUHRyPEVkaXRpbmdT
dHlsZT4gRWRpdGluZ1N0eWxlOjpjb3B5KCkgY29uc3QKQEAgLTIwMiw2ICsyMzcsNyBAQCBQYXNz
UmVmUHRyPEVkaXRpbmdTdHlsZT4gRWRpdGluZ1N0eWxlOjpjb3B5KCkgY29uc3QKICAgICBpZiAo
bV9tdXRhYmxlU3R5bGUpCiAgICAgICAgIGNvcHktPm1fbXV0YWJsZVN0eWxlID0gbV9tdXRhYmxl
U3R5bGUtPmNvcHkoKTsKICAgICBjb3B5LT5tX3Nob3VsZFVzZUZpeGVkRGVmYXVsdEZvbnRTaXpl
ID0gbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZTsKKyAgICBjb3B5LT5tX2ZvbnRTaXpl
RGVsdGEgPSBtX2ZvbnRTaXplRGVsdGE7CiAgICAgcmV0dXJuIGNvcHk7CiB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nU3R5bGUuaAppbmRleCBkNDQ0YWZlMDRlMTlmNjA1MjhjNTEzMjE1N2QzYmNhMmFjYTNmOTZi
Li43YWFmNmIyZmEzMmUxMWQ3YTkzYTA3ZTZiYTU1Y2RhNzZiNWJlZDA3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdTdHlsZS5oCkBAIC0zMSw3ICszMSw2IEBACiAjaWZuZGVmIEVkaXRpbmdTdHlsZV9oCiAjZGVm
aW5lIEVkaXRpbmdTdHlsZV9oCiAKLSNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBv
c2l0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDggKzQzLDkgQEAgZW51bSBX
cml0aW5nRGlyZWN0aW9uIHsgTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24sIExlZnRUb1JpZ2h0V3Jp
dGluZ0RpcmVjdGlvbiwgUmkKIAogY2xhc3MgRWRpdGluZ1N0eWxlIDogcHVibGljIFJlZkNvdW50
ZWQ8RWRpdGluZ1N0eWxlPiB7CiBwdWJsaWM6Ci0gICAgCisKICAgICBlbnVtIFNob3VsZFByZXNl
cnZlV3JpdGluZ0RpcmVjdGlvbiB7IFByZXNlcnZlV3JpdGluZ0RpcmVjdGlvbiwgRG9Ob3RQcmVz
ZXJ2ZVdyaXRpbmdEaXJlY3Rpb24gfTsKKyAgICBzdGF0aWMgZmxvYXQgTm9Gb250RGVsdGE7CiAK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IGNyZWF0ZSgpCiAgICAgewpAQCAt
ODMsNiArODMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVOb25FZGl0aW5nUHJvcGVydGll
cygpOwogICAgIHZvaWQgcHJlcGFyZVRvQXBwbHlBdChjb25zdCBQb3NpdGlvbiYsIFNob3VsZFBy
ZXNlcnZlV3JpdGluZ0RpcmVjdGlvbiA9IERvTm90UHJlc2VydmVXcml0aW5nRGlyZWN0aW9uKTsK
IAorICAgIGZsb2F0IGZvbnRTaXplRGVsdGEoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRTaXplRGVs
dGE7IH0KKyAgICBib29sIGhhc0ZvbnRTaXplRGVsdGEoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRT
aXplRGVsdGEgIT0gTm9Gb250RGVsdGE7IH0KKwogcHJpdmF0ZToKICAgICBFZGl0aW5nU3R5bGUo
KTsKICAgICBFZGl0aW5nU3R5bGUoTm9kZSopOwpAQCAtOTEsOSArOTQsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGluaXQoTm9kZSopOwogICAgIHZvaWQgcmVtb3ZlVGV4dEZpbGxBbmRTdHJva2VD
b2xvcnNJZk5lZWRlZChSZW5kZXJTdHlsZSopOwogICAgIHZvaWQgcmVwbGFjZUZvbnRTaXplQnlL
ZXl3b3JkSWZQb3NzaWJsZShSZW5kZXJTdHlsZSosIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
biopOworICAgIHZvaWQgZXh0cmFjdEZvbnRTaXplRGVsdGEoKTsKIAogICAgIFJlZlB0cjxDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gbV9tdXRhYmxlU3R5bGU7CiAgICAgYm9vbCBtX3Nob3Vs
ZFVzZUZpeGVkRGVmYXVsdEZvbnRTaXplOworICAgIGZsb2F0IG1fZm9udFNpemVEZWx0YTsKIH07
CiAKIFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBlZGl0aW5nU3R5bGVJbmNsdWRpbmdUeXBpbmdT
dHlsZShjb25zdCBQb3NpdGlvbiYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDU4MWEyNzk2ZDI4YTQyN2RjZmRi
NDk0YzY5NzM5MTQ5ZDNiNjcwMDkuLjE2YmJiMTUxYmRmNzYxMGZmNGMwZDk1ZDk4ZGFmMTE4ZTZl
M2JmZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDbGlwYm9hcmRB
Y2Nlc3NQb2xpY3kuaCIKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkNvcnJlY3Rpb25Q
YW5lbEluZm8uaCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlci5oIgogI2luY2x1ZGUgIkVkaXRB
Y3Rpb24uaCIKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3IuaCIKICNpbmNsdWRlICJFZGl0b3JE
ZWxldGVBY3Rpb24uaCIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76800</attachid>
            <date>2010-12-16 12:33:06 -0800</date>
            <delta_ts>2011-01-04 12:30:53 -0800</delta_ts>
            <desc>Removed #include changes</desc>
            <filename>bug-50641-20101216123304.patch</filename>
            <type>text/plain</type>
            <size>12141</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTE2YzJjNTY5NzQ0MDNlNmM4Yjc4ZTc0NTk1YjY1YjhmZTA5ZDFhYi4uODM4NGVlNmJhYzZkNTY1
NWIyYzk4YTQ0ZWI3ZjRmY2FhNGQxMWZlYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0xMi0xNSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZv
bnRTdHlsZUNoYW5nZSBzaG91bGQgdGFrZSBFZGl0aW5nU3R5bGUqCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDY0MQorCisgICAgICAgIE1vZGlmaWVk
IGFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UgdG8gdGFrZSBFZGl0aW5nU3R5bGUgaW5zdGVh
ZCBvZiBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi4KKyAgICAgICAgQWxzbyBleHRyYWN0ZWQg
dGhlIGxvZ2ljIHRvIG9idGFpbiB0aGUgZm9udCBzaXplIGRlbHRhIGZyb20gQXBwbHlTdHlsZUNv
bW1hbmQgdG8gRWRpdGluZ1N0eWxlLgorICAgICAgICBUaGUgZm9udCBzaXplIGRlbHRhIGlzIG5v
dyBzdG9yZWQgYXMgYSBtZW1iZXIgdmFyaWFibGUgb2YgRWRpdGluZ1N0eWxlIGFzIHN1cHBvc2Vk
IHRvIGEgcHJvcGVydHkKKyAgICAgICAgaW4gQ1NTTXV0YWJsZVN0eWxlRGVjbHJhdGlvbiBhcyBz
b29uIGFzIEVkaXRpbmdTdHlsZSBpcyBpbnN0YW50aWF0ZWQuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIGFyZSBhZGRlZCBzaW5jZSB0aGlzIGlzIGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBl
ZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5
bGVDb21tYW5kOjpkb0FwcGx5KTogQ2FsbHMgYXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZS4K
KyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0
eWxlQ2hhbmdlKTogVGFrZXMgRWRpdGluZ1N0eWxlLgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OkVkaXRpbmdTdHlsZSk6IEluaXRpYWxpemVzIG1f
Zm9udFNpemVEZWx0YS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6aW5pdCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpleHRyYWN0Rm9udFNpemVEZWx0
YSk6IEV4dHJhY3RlZCBmcm9tIGFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UuCisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmlzRW1wdHkpOiBUYWtlcyBjYXJlIG9mIG1fZm9udFNp
emVEZWx0YS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6c2V0U3R5bGUpOiBDYWxs
cyBleHRyYWN0Rm9udFNpemVEZWx0YS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6
b3ZlcnJpZGVXaXRoU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHls
ZTo6Y2xlYXIpOiBJbml0aWFsaXplcyBtX2ZvbnRTaXplRGVsdGEuCisgICAgICAgIChXZWJDb3Jl
OjpFZGl0aW5nU3R5bGU6OmNvcHkpOiBDYWxscyBleHRyYWN0Rm9udFNpemVEZWx0YS4KKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0
eWxlOjpmb250U2l6ZURlbHRhKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5
bGU6Omhhc0ZvbnRTaXplRGVsdGEpOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5o
OgorCiAyMDEwLTEyLTE1ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvV2ViQ29yZS9lZGl0aW5n
L0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCAxOTczYTk0NmRiMzZkNGFiZDliNmM2ZjgzNDE0
NGFhNjUzNDJjMDg1Li43MWI2YTI3MjBhOWVkZmRjZjdjMDVlZjU1YWRiMmFmMDYyOGFkODcwIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1dl
YkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2
b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgLy8gQXBwbHkgYW55IHJl
bWFpbmluZyBzdHlsZXMgdG8gdGhlIGlubGluZSBlbGVtZW50cy4KICAgICAgICAgaWYgKCFtX3N0
eWxlLT5pc0VtcHR5KCkgfHwgbV9zdHlsZWRJbmxpbmVFbGVtZW50IHx8IG1faXNJbmxpbmVFbGVt
ZW50VG9SZW1vdmVGdW5jdGlvbikgewogICAgICAgICAgICAgUmVmUHRyPENTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uPiBzdHlsZSA9IG1fc3R5bGUtPnN0eWxlKCkgPyBtX3N0eWxlLT5zdHlsZSgp
IDogQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZSgpOwotICAgICAgICAgICAgYXBw
bHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShzdHlsZS5nZXQoKSk7CisgICAgICAgICAgICBhcHBs
eVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKG1fc3R5bGUuZ2V0KCkpOwogICAgICAgICAgICAgYXBw
bHlJbmxpbmVTdHlsZShzdHlsZS5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBA
IC02MDcsMzUgKzYwNywxMyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseUJsb2NrU3R5
bGUoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24gKnN0eWxlKQogICAgICAgICB1cGRhdGVTdGFy
dEVuZChzdGFydFJhbmdlLT5zdGFydFBvc2l0aW9uKCksIGVuZFJhbmdlLT5zdGFydFBvc2l0aW9u
KCkpOwogfQogCi0jZGVmaW5lIE5vRm9udERlbHRhICgwLjBmKQotI2RlZmluZSBNaW5pbXVtRm9u
dFNpemUgKDAuMWYpCi0KLXZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb250
U3R5bGVDaGFuZ2UoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24gKnN0eWxlKQordm9pZCBBcHBs
eVN0eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShFZGl0aW5nU3R5bGUq
IHN0eWxlKQogewotICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBzdHlsZS0+Z2V0UHJvcGVy
dHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUZvbnRTaXplKTsKLSAgICBpZiAodmFsdWUpIHsKLSAgICAg
ICAgLy8gRXhwbGljaXQgZm9udCBzaXplIG92ZXJyaWRlcyBhbnkgZGVsdGEuCi0gICAgICAgIHN0
eWxlLT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTaXplRGVsdGEpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQorICAgIHN0YXRpYyBjb25zdCBmbG9hdCBNaW5pbXVtRm9udFNp
emUgPSAwLjFmOwogCi0gICAgLy8gR2V0IHRoZSBhZGp1c3RtZW50IGFtb3VudCBvdXQgb2YgdGhl
IHN0eWxlLgotICAgIHZhbHVlID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVy
dHlXZWJraXRGb250U2l6ZURlbHRhKTsKLSAgICBpZiAoIXZhbHVlKQotICAgICAgICByZXR1cm47
Ci0gICAgZmxvYXQgYWRqdXN0bWVudCA9IE5vRm9udERlbHRhOwotICAgIGlmICh2YWx1ZS0+Y3Nz
VmFsdWVUeXBlKCkgPT0gQ1NTVmFsdWU6OkNTU19QUklNSVRJVkVfVkFMVUUpIHsKLSAgICAgICAg
Q1NTUHJpbWl0aXZlVmFsdWUgKnByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0
aXZlVmFsdWUgKj4odmFsdWUuZ2V0KCkpOwotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPnBy
aW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKSB7Ci0gICAgICAgICAg
ICAvLyBPbmx5IFBYIGhhbmRsZWQgbm93LiBJZiB3ZSBoYW5kbGUgbW9yZSB0eXBlcyBpbiB0aGUg
ZnV0dXJlLCBwZXJoYXBzCi0gICAgICAgICAgICAvLyBhIHN3aXRjaCBzdGF0ZW1lbnQgaGVyZSB3
b3VsZCBiZSBtb3JlIGFwcHJvcHJpYXRlLgotICAgICAgICAgICAgYWRqdXN0bWVudCA9IHByaW1p
dGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgc3R5bGUt
PnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0Rm9udFNpemVEZWx0YSk7Ci0gICAgaWYg
KGFkanVzdG1lbnQgPT0gTm9Gb250RGVsdGEpCisgICAgaWYgKCFzdHlsZSB8fCAhc3R5bGUtPmhh
c0ZvbnRTaXplRGVsdGEoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgUG9zaXRpb24g
c3RhcnQgPSBzdGFydFBvc2l0aW9uKCk7CiAgICAgUG9zaXRpb24gZW5kID0gZW5kUG9zaXRpb24o
KTsKICAgICBpZiAoY29tcGFyZVBvc2l0aW9ucyhlbmQsIHN0YXJ0KSA8IDApIHsKQEAgLTY0Myw3
ICs2MjEsNyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxl
Q2hhbmdlKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uCiAgICAgICAgIHN0YXJ0ID0gZW5kOwog
ICAgICAgICBlbmQgPSBzd2FwOwogICAgIH0KLSAgICAKKwogICAgIC8vIEpvaW4gdXAgYW55IGFk
amFjZW50IHRleHQgbm9kZXMuCiAgICAgaWYgKHN0YXJ0Lm5vZGUoKS0+aXNUZXh0Tm9kZSgpKSB7
CiAgICAgICAgIGpvaW5DaGlsZFRleHROb2RlcyhzdGFydC5ub2RlKCktPnBhcmVudE5vZGUoKSwg
c3RhcnQsIGVuZCk7CkBAIC03MTQsNyArNjkyLDcgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6
YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgog
CiAgICAgICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBpbmxpbmVTdHlsZURlY2wgPSBl
bGVtZW50LT5nZXRJbmxpbmVTdHlsZURlY2woKTsKICAgICAgICAgZmxvYXQgY3VycmVudEZvbnRT
aXplID0gY29tcHV0ZWRGb250U2l6ZShub2RlKTsKLSAgICAgICAgZmxvYXQgZGVzaXJlZEZvbnRT
aXplID0gbWF4KE1pbmltdW1Gb250U2l6ZSwgc3RhcnRpbmdGb250U2l6ZXMuZ2V0KG5vZGUpICsg
YWRqdXN0bWVudCk7CisgICAgICAgIGZsb2F0IGRlc2lyZWRGb250U2l6ZSA9IG1heChNaW5pbXVt
Rm9udFNpemUsIHN0YXJ0aW5nRm9udFNpemVzLmdldChub2RlKSArIHN0eWxlLT5mb250U2l6ZURl
bHRhKCkpOwogICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gaW5saW5lU3R5bGVEZWNs
LT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5Rm9udFNpemUpOwogICAgICAgICBpZiAo
dmFsdWUpIHsKICAgICAgICAgICAgIGlubGluZVN0eWxlRGVjbC0+cmVtb3ZlUHJvcGVydHkoQ1NT
UHJvcGVydHlGb250U2l6ZSwgdHJ1ZSk7CkBAIC03MzcsOSArNzE1LDYgQEAgdm9pZCBBcHBseVN0
eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbgogICAgICAgICByZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKHVuc3R5bGVk
U3BhbnNbaV0uZ2V0KCkpOwogfQogCi0jdW5kZWYgTm9Gb250RGVsdGEKLSN1bmRlZiBNaW5pbXVt
Rm9udFNpemUKLQogc3RhdGljIE5vZGUqIGR1bW15U3BhbkFuY2VzdG9yRm9yTm9kZShjb25zdCBO
b2RlKiBub2RlKQogewogICAgIHdoaWxlIChub2RlICYmICFpc1N0eWxlU3Bhbihub2RlKSkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oIGIvV2ViQ29yZS9l
ZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKaW5kZXggNDQxOTdjYzEwNjRkMjg2YTQ0Mjc0M2Zj
YmEzOTYzNDcxYmNjYjcyZS4uNWYzNjliYWM1ZDg0OWM4NjkxOTMzZmFlOGFiODkyYzZjNjJkM2Vi
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKKysrIGIv
V2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKQEAgLTkxLDcgKzkxLDcgQEAgcHJp
dmF0ZToKIAogICAgIC8vIHN0eWxlLWFwcGxpY2F0aW9uIGhlbHBlcnMKICAgICB2b2lkIGFwcGx5
QmxvY2tTdHlsZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiopOwotICAgIHZvaWQgYXBwbHlS
ZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiopOworICAg
IHZvaWQgYXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShFZGl0aW5nU3R5bGUqKTsKICAgICB2
b2lkIGFwcGx5SW5saW5lU3R5bGUoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qKTsKICAgICB2
b2lkIGZpeFJhbmdlQW5kQXBwbHlJbmxpbmVTdHlsZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
biosIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCk7CiAgICAgdm9p
ZCBhcHBseUlubGluZVN0eWxlVG9Ob2RlUmFuZ2UoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24q
LCBOb2RlKiBzdGFydE5vZGUsIE5vZGUqIHBhc3RFbmROb2RlKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKaW5kZXggYzQ2YzA3NWE2ZmRhYjk1OGIwYzNlNzE2NDM2NjIzNDA4YjM1MTA1MC4uYzNk
YTg3MzgwOTU1M2VkNzgwN2YzY2M1NTkzNzUxMjhlZGFlODg4YyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHAKQEAgLTgwLDE5ICs4MCwyNCBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbj4gZWRpdGluZ1N0eWxlRnJvbUNvbXB1dGVkU3R5bGUoUGFzcwogICAg
IHJldHVybiBjb3B5RWRpdGluZ1Byb3BlcnRpZXMoc3R5bGUuZ2V0KCkpOwogfQogCitmbG9hdCBF
ZGl0aW5nU3R5bGU6Ok5vRm9udERlbHRhID0gMC4wZjsKKwogRWRpdGluZ1N0eWxlOjpFZGl0aW5n
U3R5bGUoKQogICAgIDogbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZShmYWxzZSkKKyAg
ICAsIG1fZm9udFNpemVEZWx0YShOb0ZvbnREZWx0YSkKIHsKIH0KIAogRWRpdGluZ1N0eWxlOjpF
ZGl0aW5nU3R5bGUoTm9kZSogbm9kZSkKICAgICA6IG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0Rm9u
dFNpemUoZmFsc2UpCisgICAgLCBtX2ZvbnRTaXplRGVsdGEoTm9Gb250RGVsdGEpCiB7CiAgICAg
aW5pdChub2RlKTsKIH0KIAogRWRpdGluZ1N0eWxlOjpFZGl0aW5nU3R5bGUoY29uc3QgUG9zaXRp
b24mIHBvc2l0aW9uKQogICAgIDogbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZShmYWxz
ZSkKKyAgICAsIG1fZm9udFNpemVEZWx0YShOb0ZvbnREZWx0YSkKIHsKICAgICBpbml0KHBvc2l0
aW9uLm5vZGUoKSk7CiB9CkBAIC0xMDAsNyArMTA1LDkgQEAgRWRpdGluZ1N0eWxlOjpFZGl0aW5n
U3R5bGUoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQogRWRpdGluZ1N0eWxlOjpFZGl0aW5nU3R5
bGUoY29uc3QgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCiAgICAgOiBtX211dGFibGVTdHls
ZShzdHlsZS0+Y29weSgpKQogICAgICwgbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZShm
YWxzZSkKKyAgICAsIG1fZm9udFNpemVEZWx0YShOb0ZvbnREZWx0YSkKIHsKKyAgICBleHRyYWN0
Rm9udFNpemVEZWx0YSgpOwogfQogCiBFZGl0aW5nU3R5bGU6On5FZGl0aW5nU3R5bGUoKQpAQCAt
MTE5LDYgKzEyNiw3IEBAIHZvaWQgRWRpdGluZ1N0eWxlOjppbml0KE5vZGUqIG5vZGUpCiAgICAg
fQogCiAgICAgbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZSA9IGNvbXB1dGVkU3R5bGVB
dFBvc2l0aW9uLT51c2VGaXhlZEZvbnREZWZhdWx0U2l6ZSgpOworICAgIGV4dHJhY3RGb250U2l6
ZURlbHRhKCk7CiB9CiAKIHZvaWQgRWRpdGluZ1N0eWxlOjpyZW1vdmVUZXh0RmlsbEFuZFN0cm9r
ZUNvbG9yc0lmTmVlZGVkKFJlbmRlclN0eWxlKiByZW5kZXJTdHlsZSkKQEAgLTE0MSw5ICsxNDks
MzMgQEAgdm9pZCBFZGl0aW5nU3R5bGU6OnJlcGxhY2VGb250U2l6ZUJ5S2V5d29yZElmUG9zc2li
bGUoUmVuZGVyU3R5bGUqIHJlbmRlclN0eWxlLAogICAgICAgICBtX211dGFibGVTdHlsZS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSwgY29tcHV0ZWRTdHlsZS0+Z2V0Rm9udFNpemVD
U1NWYWx1ZVByZWZlcnJpbmdLZXl3b3JkKCktPmNzc1RleHQoKSk7CiB9CiAKK3ZvaWQgRWRpdGlu
Z1N0eWxlOjpleHRyYWN0Rm9udFNpemVEZWx0YSgpCit7CisgICAgaWYgKG1fbXV0YWJsZVN0eWxl
LT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5Rm9udFNpemUpKSB7CisgICAgICAgIC8v
IEV4cGxpY2l0IGZvbnQgc2l6ZSBvdmVycmlkZXMgYW55IGRlbHRhLgorICAgICAgICBtX211dGFi
bGVTdHlsZS0+cmVtb3ZlUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGb250U2l6ZURlbHRhKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEdldCB0aGUgYWRqdXN0bWVudCBhbW91
bnQgb3V0IG9mIHRoZSBzdHlsZS4KKyAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gbV9tdXRh
YmxlU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlXZWJraXRGb250U2l6ZURl
bHRhKTsKKyAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLT5jc3NWYWx1ZVR5cGUoKSAhPSBDU1NWYWx1
ZTo6Q1NTX1BSSU1JVElWRV9WQUxVRSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ1NTUHJpbWl0
aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
Pih2YWx1ZS5nZXQoKSk7CisKKyAgICAvLyBPbmx5IFBYIGhhbmRsZWQgbm93LiBJZiB3ZSBoYW5k
bGUgbW9yZSB0eXBlcyBpbiB0aGUgZnV0dXJlLCBwZXJoYXBzCisgICAgLy8gYSBzd2l0Y2ggc3Rh
dGVtZW50IGhlcmUgd291bGQgYmUgbW9yZSBhcHByb3ByaWF0ZS4KKyAgICBpZiAocHJpbWl0aXZl
VmFsdWUtPnByaW1pdGl2ZVR5cGUoKSAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2ZvbnRTaXplRGVsdGEgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0
RmxvYXRWYWx1ZSgpOworICAgIG1fbXV0YWJsZVN0eWxlLT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9w
ZXJ0eVdlYmtpdEZvbnRTaXplRGVsdGEpOworfQorCiBib29sIEVkaXRpbmdTdHlsZTo6aXNFbXB0
eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX211dGFibGVTdHlsZSB8fCBtX211dGFibGVTdHls
ZS0+aXNFbXB0eSgpOworICAgIHJldHVybiAoIW1fbXV0YWJsZVN0eWxlIHx8IG1fbXV0YWJsZVN0
eWxlLT5pc0VtcHR5KCkpICYmIG1fZm9udFNpemVEZWx0YSA9PSBOb0ZvbnREZWx0YTsKIH0KIAog
Ym9vbCBFZGl0aW5nU3R5bGU6OnRleHREaXJlY3Rpb24oV3JpdGluZ0RpcmVjdGlvbiYgd3JpdGlu
Z0RpcmVjdGlvbikgY29uc3QKQEAgLTE3OSw2ICsyMTEsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6
c2V0U3R5bGUoUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGUpCiAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBhYmxlIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBvciBu
b3QgZm9udCBpcyBmaXhlZCB3aWR0aCBmb3IgbXV0YWJsZSBzdHlsZS4KICAgICAvLyBXZSBuZWVk
IHRvIGNoZWNrIGZvbnQtZmFtaWx5IGlzIG1vbm9zcGFjZSBhcyBpbiBGb250RGVzY3JpcHRpb24g
YnV0IHdlIGRvbid0IHdhbnQgdG8gZHVwbGljYXRlIGNvZGUgaGVyZS4KICAgICBtX3Nob3VsZFVz
ZUZpeGVkRGVmYXVsdEZvbnRTaXplID0gZmFsc2U7CisgICAgZXh0cmFjdEZvbnRTaXplRGVsdGEo
KTsKIH0KIAogdm9pZCBFZGl0aW5nU3R5bGU6Om92ZXJyaWRlV2l0aFN0eWxlKGNvbnN0IENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkKQEAgLTE4OCwxMiArMjIxLDE0IEBAIHZvaWQg
RWRpdGluZ1N0eWxlOjpvdmVycmlkZVdpdGhTdHlsZShjb25zdCBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbiogc3R5bGUpCiAgICAgaWYgKCFtX211dGFibGVTdHlsZSkKICAgICAgICAgbV9tdXRh
YmxlU3R5bGUgPSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCk7CiAgICAgbV9t
dXRhYmxlU3R5bGUtPm1lcmdlKHN0eWxlKTsKKyAgICBleHRyYWN0Rm9udFNpemVEZWx0YSgpOwog
fQogCiB2b2lkIEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewogICAgIG1fbXV0YWJsZVN0eWxlLmNs
ZWFyKCk7CiAgICAgbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZSA9IGZhbHNlOworICAg
IG1fZm9udFNpemVEZWx0YSA9IE5vRm9udERlbHRhOwogfQogCiBQYXNzUmVmUHRyPEVkaXRpbmdT
dHlsZT4gRWRpdGluZ1N0eWxlOjpjb3B5KCkgY29uc3QKQEAgLTIwMiw2ICsyMzcsNyBAQCBQYXNz
UmVmUHRyPEVkaXRpbmdTdHlsZT4gRWRpdGluZ1N0eWxlOjpjb3B5KCkgY29uc3QKICAgICBpZiAo
bV9tdXRhYmxlU3R5bGUpCiAgICAgICAgIGNvcHktPm1fbXV0YWJsZVN0eWxlID0gbV9tdXRhYmxl
U3R5bGUtPmNvcHkoKTsKICAgICBjb3B5LT5tX3Nob3VsZFVzZUZpeGVkRGVmYXVsdEZvbnRTaXpl
ID0gbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZTsKKyAgICBjb3B5LT5tX2ZvbnRTaXpl
RGVsdGEgPSBtX2ZvbnRTaXplRGVsdGE7CiAgICAgcmV0dXJuIGNvcHk7CiB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nU3R5bGUuaAppbmRleCBkNDQ0YWZlMDRlMTlmNjA1MjhjNTEzMjE1N2QzYmNhMmFjYTNmOTZi
Li44M2ZlNGJmNDY5OTdjY2IzZjhhNWJkYWY5ZGMxNmMzOWU4NGYyMjY1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdTdHlsZS5oCkBAIC00NCw4ICs0NCw5IEBAIGVudW0gV3JpdGluZ0RpcmVjdGlvbiB7IE5hdHVy
YWxXcml0aW5nRGlyZWN0aW9uLCBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb24sIFJpCiAKIGNs
YXNzIEVkaXRpbmdTdHlsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEVkaXRpbmdTdHlsZT4gewogcHVi
bGljOgotICAgIAorCiAgICAgZW51bSBTaG91bGRQcmVzZXJ2ZVdyaXRpbmdEaXJlY3Rpb24geyBQ
cmVzZXJ2ZVdyaXRpbmdEaXJlY3Rpb24sIERvTm90UHJlc2VydmVXcml0aW5nRGlyZWN0aW9uIH07
CisgICAgc3RhdGljIGZsb2F0IE5vRm9udERlbHRhOwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
RWRpdGluZ1N0eWxlPiBjcmVhdGUoKQogICAgIHsKQEAgLTgzLDYgKzg0LDkgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVtb3ZlTm9uRWRpdGluZ1Byb3BlcnRpZXMoKTsKICAgICB2b2lkIHByZXBhcmVU
b0FwcGx5QXQoY29uc3QgUG9zaXRpb24mLCBTaG91bGRQcmVzZXJ2ZVdyaXRpbmdEaXJlY3Rpb24g
PSBEb05vdFByZXNlcnZlV3JpdGluZ0RpcmVjdGlvbik7CiAKKyAgICBmbG9hdCBmb250U2l6ZURl
bHRhKCkgY29uc3QgeyByZXR1cm4gbV9mb250U2l6ZURlbHRhOyB9CisgICAgYm9vbCBoYXNGb250
U2l6ZURlbHRhKCkgY29uc3QgeyByZXR1cm4gbV9mb250U2l6ZURlbHRhICE9IE5vRm9udERlbHRh
OyB9CisKIHByaXZhdGU6CiAgICAgRWRpdGluZ1N0eWxlKCk7CiAgICAgRWRpdGluZ1N0eWxlKE5v
ZGUqKTsKQEAgLTkxLDkgKzk1LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0KE5vZGUqKTsK
ICAgICB2b2lkIHJlbW92ZVRleHRGaWxsQW5kU3Ryb2tlQ29sb3JzSWZOZWVkZWQoUmVuZGVyU3R5
bGUqKTsKICAgICB2b2lkIHJlcGxhY2VGb250U2l6ZUJ5S2V5d29yZElmUG9zc2libGUoUmVuZGVy
U3R5bGUqLCBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24qKTsKKyAgICB2b2lkIGV4dHJhY3RG
b250U2l6ZURlbHRhKCk7CiAKICAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+
IG1fbXV0YWJsZVN0eWxlOwogICAgIGJvb2wgbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6
ZTsKKyAgICBmbG9hdCBtX2ZvbnRTaXplRGVsdGE7CiB9OwogCiBQYXNzUmVmUHRyPEVkaXRpbmdT
dHlsZT4gZWRpdGluZ1N0eWxlSW5jbHVkaW5nVHlwaW5nU3R5bGUoY29uc3QgUG9zaXRpb24mKTsK
</data>
<flag name="review"
          id="67805"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>