<?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>74368</bug_id>
          
          <creation_ts>2011-12-12 16:28:22 -0800</creation_ts>
          <short_desc>Implement CSS font-size property in CSSStyleApplyProperty.</short_desc>
          <delta_ts>2011-12-18 19:01:53 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Luke Macpherson">macpherson</reporter>
          <assigned_to name="Luke Macpherson">macpherson</assigned_to>
          <cc>jchaffraix</cc>
    
    <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>519657</commentid>
    <comment_count>0</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-12-12 16:28:22 -0800</bug_when>
    <thetext>Implement CSS font-size property in CSSStyleApplyProperty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519662</commentid>
    <comment_count>1</comment_count>
      <attachid>118902</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-12-12 16:31:33 -0800</bug_when>
    <thetext>Created attachment 118902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523554</commentid>
    <comment_count>2</comment_count>
      <attachid>118902</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-18 15:41:38 -0800</bug_when>
    <thetext>Comment on attachment 118902
Patch

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

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:603
&gt; +        fontDescription.setKeywordSize(0);

This should be removed as it&apos;s overwritten just below.

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:608
&gt; +        if (size &lt; 0)
&gt; +            return;

We should check this before copying the FontDescription to avoid unnecessary work.

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:618
&gt; +        fontDescription.setKeywordSize(0);

This should be removed as it&apos;s overwritten just below.

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:623
&gt; +        if (size &lt; 0)
&gt; +            return;

We should check this before copying the FontDescription to avoid unnecessary work.

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:680
&gt; +            if (CSSPrimitiveValue::isUnitTypeLength(type))

if (primitiveValue-&gt;isLength())

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:682
&gt; +            else if (type == CSSPrimitiveValue::CSS_PERCENTAGE)

else if (primitiveValue-&gt;isPercentage())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523565</commentid>
    <comment_count>3</comment_count>
      <attachid>118902</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-12-18 16:23:59 -0800</bug_when>
    <thetext>Comment on attachment 118902
Patch

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

&gt;&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:603
&gt;&gt; +        fontDescription.setKeywordSize(0);
&gt; 
&gt; This should be removed as it&apos;s overwritten just below.

Done.

&gt;&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:608
&gt;&gt; +            return;
&gt; 
&gt; We should check this before copying the FontDescription to avoid unnecessary work.

Done.

&gt;&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:618
&gt;&gt; +        fontDescription.setKeywordSize(0);
&gt; 
&gt; This should be removed as it&apos;s overwritten just below.

Done.

&gt;&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:623
&gt;&gt; +            return;
&gt; 
&gt; We should check this before copying the FontDescription to avoid unnecessary work.

fontDescription is used to calculate size in this case, so I&apos;ve only moved fontDescription.setKeywordSize after this return.

&gt;&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:680
&gt;&gt; +            if (CSSPrimitiveValue::isUnitTypeLength(type))
&gt; 
&gt; if (primitiveValue-&gt;isLength())

Done.

&gt;&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:682
&gt;&gt; +            else if (type == CSSPrimitiveValue::CSS_PERCENTAGE)
&gt; 
&gt; else if (primitiveValue-&gt;isPercentage())

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523576</commentid>
    <comment_count>4</comment_count>
      <attachid>119788</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-12-18 16:44:46 -0800</bug_when>
    <thetext>Created attachment 119788
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523641</commentid>
    <comment_count>5</comment_count>
      <attachid>119788</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-18 19:01:48 -0800</bug_when>
    <thetext>Comment on attachment 119788
Patch for landing

Clearing flags on attachment: 119788

Committed r103208: &lt;http://trac.webkit.org/changeset/103208&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523642</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-18 19:01:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118902</attachid>
            <date>2011-12-12 16:31:33 -0800</date>
            <delta_ts>2011-12-18 16:44:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74368-20111213113130.patch</filename>
            <type>text/plain</type>
            <size>14313</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDExLTEyLTEyICBMdWtlIE1h
Y3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IENTUyBmb250LXNpemUgcHJvcGVydHkgaW4gQ1NTU3R5bGVBcHBseVByb3BlcnR5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzNjgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgLyBy
ZWZhY3RvcmluZyBvbmx5LgorCisgICAgICAgICogY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Rm9udFNpemU6OmxhcmdlckZvbnRT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlGb250U2l6ZTo6c21hbGxlckZv
bnRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlGb250U2l6ZTo6YXBwbHlJ
bmhlcml0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUZvbnRTaXplOjph
cHBseUluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Rm9udFNp
emU6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUZvbnRTaXpl
OjpjcmVhdGVIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0
eTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5
KToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU3R5bGVTZWxlY3Rvcjo6aGFzUGFyZW50Tm9kZSk6CisKIDIwMTEtMTItMTIgIENocmlzIEZs
ZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogYXJpYS1oaWRkZW4g
aW5oZXJpdGFuY2UgYnJva2VuIHdoZW4gYXBwbHlpbmcgdG8gc29tZSBkZXNjZW5kYW50cwpJbmRl
eDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAJKHJldmlz
aW9uIDEwMjYzMSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzgsNiArNTc4LDEyNCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkgeyByZXR1cm4gUHJvcGVydHlIYW5k
bGVyKCZhcHBseUluaGVyaXRWYWx1ZSwgJmFwcGx5SW5pdGlhbFZhbHVlLCAmYXBwbHlWYWx1ZSk7
IH0KIH07CiAKK2NsYXNzIEFwcGx5UHJvcGVydHlGb250U2l6ZSB7Citwcml2YXRlOgorICAgIC8v
IFdoZW4gdGhlIENTUyBrZXl3b3JkICJsYXJnZXIiIGlzIHVzZWQsIHRoaXMgZnVuY3Rpb24gd2ls
bCBhdHRlbXB0IHRvIG1hdGNoIHdpdGhpbiB0aGUga2V5d29yZAorICAgIC8vIHRhYmxlLCBhbmQg
ZmFpbGluZyB0aGF0LCB3aWxsIHNpbXBseSBtdWx0aXBseSBieSAxLjIuCisgICAgc3RhdGljIGZs
b2F0IGxhcmdlckZvbnRTaXplKGZsb2F0IHNpemUpCisgICAgeworICAgICAgICAvLyBGSVhNRTog
RmlndXJlIG91dCB3aGVyZSB3ZSBmYWxsIGluIHRoZSBzaXplIHJhbmdlcyAoeHgtc21hbGwgdG8g
eHh4LWxhcmdlKSBhbmQgc2NhbGUgdXAgdG8KKyAgICAgICAgLy8gdGhlIG5leHQgc2l6ZSBsZXZl
bC4KKyAgICAgICAgcmV0dXJuIHNpemUgKiAxLjJmOworICAgIH0KKworICAgIC8vIExpa2UgdGhl
IHByZXZpb3VzIGZ1bmN0aW9uLCBidXQgZm9yIHRoZSBrZXl3b3JkICJzbWFsbGVyIi4KKyAgICBz
dGF0aWMgZmxvYXQgc21hbGxlckZvbnRTaXplKGZsb2F0IHNpemUpCisgICAgeworICAgICAgICAv
LyBGSVhNRTogRmlndXJlIG91dCB3aGVyZSB3ZSBmYWxsIGluIHRoZSBzaXplIHJhbmdlcyAoeHgt
c21hbGwgdG8geHh4LWxhcmdlKSBhbmQgc2NhbGUgZG93biB0bworICAgICAgICAvLyB0aGUgbmV4
dCBzaXplIGxldmVsLgorICAgICAgICByZXR1cm4gc2l6ZSAvIDEuMmY7CisgICAgfQorcHVibGlj
OgorICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFZhbHVlKENTU1N0eWxlU2VsZWN0b3IqIHNl
bGVjdG9yKQorICAgIHsKKyAgICAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9
IHNlbGVjdG9yLT5zdHlsZSgpLT5mb250RGVzY3JpcHRpb24oKTsKKyAgICAgICAgZm9udERlc2Ny
aXB0aW9uLnNldEtleXdvcmRTaXplKDApOworICAgICAgICBmbG9hdCBzaXplID0gc2VsZWN0b3It
PnBhcmVudFN0eWxlKCktPmZvbnREZXNjcmlwdGlvbigpLnNwZWNpZmllZFNpemUoKTsKKyAgICAg
ICAgZm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRTaXplKHNlbGVjdG9yLT5wYXJlbnRTdHlsZSgp
LT5mb250RGVzY3JpcHRpb24oKS5rZXl3b3JkU2l6ZSgpKTsKKworICAgICAgICBpZiAoc2l6ZSA8
IDApCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc2VsZWN0b3ItPnNldEZvbnRTaXpl
KGZvbnREZXNjcmlwdGlvbiwgc2l6ZSk7CisgICAgICAgIHNlbGVjdG9yLT5zZXRGb250RGVzY3Jp
cHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0
YXRpYyB2b2lkIGFwcGx5SW5pdGlhbFZhbHVlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yKQor
ICAgIHsKKyAgICAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IHNlbGVjdG9y
LT5zdHlsZSgpLT5mb250RGVzY3JpcHRpb24oKTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9uLnNl
dEtleXdvcmRTaXplKDApOworICAgICAgICBmbG9hdCBzaXplID0gc2VsZWN0b3ItPmZvbnRTaXpl
Rm9yS2V5d29yZChzZWxlY3Rvci0+ZG9jdW1lbnQoKSwgQ1NTVmFsdWVNZWRpdW0sIGZvbnREZXNj
cmlwdGlvbi51c2VGaXhlZERlZmF1bHRTaXplKCkpOworICAgICAgICBmb250RGVzY3JpcHRpb24u
c2V0S2V5d29yZFNpemUoQ1NTVmFsdWVNZWRpdW0gLSBDU1NWYWx1ZVh4U21hbGwgKyAxKTsKKwor
ICAgICAgICBpZiAoc2l6ZSA8IDApCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc2Vs
ZWN0b3ItPnNldEZvbnRTaXplKGZvbnREZXNjcmlwdGlvbiwgc2l6ZSk7CisgICAgICAgIHNlbGVj
dG9yLT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTU3R5bGVTZWxlY3Rvciog
c2VsZWN0b3IsIENTU1ZhbHVlKiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICghdmFsdWUtPmlz
UHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBDU1NQcmlt
aXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZSo+KHZhbHVlKTsKKworICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0g
c2VsZWN0b3ItPnN0eWxlKCktPmZvbnREZXNjcmlwdGlvbigpOworICAgICAgICBmb250RGVzY3Jp
cHRpb24uc2V0S2V5d29yZFNpemUoMCk7CisgICAgICAgIGZsb2F0IHBhcmVudFNpemUgPSAwOwor
ICAgICAgICBib29sIHBhcmVudElzQWJzb2x1dGVTaXplID0gZmFsc2U7CisgICAgICAgIGZsb2F0
IHNpemUgPSAwOworCisgICAgICAgIGlmIChzZWxlY3Rvci0+aGFzUGFyZW50Tm9kZSgpKSB7Cisg
ICAgICAgICAgICBwYXJlbnRTaXplID0gc2VsZWN0b3ItPnBhcmVudFN0eWxlKCktPmZvbnREZXNj
cmlwdGlvbigpLnNwZWNpZmllZFNpemUoKTsKKyAgICAgICAgICAgIHBhcmVudElzQWJzb2x1dGVT
aXplID0gc2VsZWN0b3ItPnBhcmVudFN0eWxlKCktPmZvbnREZXNjcmlwdGlvbigpLmlzQWJzb2x1
dGVTaXplKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW50IGlkZW50ID0gcHJpbWl0aXZl
VmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgIC8vIEtleXdvcmRzIGFyZSBiZWluZyB1
c2VkLgorICAgICAgICAgICAgc3dpdGNoIChpZGVudCkgeworICAgICAgICAgICAgY2FzZSBDU1NW
YWx1ZVh4U21hbGw6CisgICAgICAgICAgICBjYXNlIENTU1ZhbHVlWFNtYWxsOgorICAgICAgICAg
ICAgY2FzZSBDU1NWYWx1ZVNtYWxsOgorICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZU1lZGl1bToK
KyAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVMYXJnZToKKyAgICAgICAgICAgIGNhc2UgQ1NTVmFs
dWVYTGFyZ2U6CisgICAgICAgICAgICBjYXNlIENTU1ZhbHVlWHhMYXJnZToKKyAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVXZWJraXRYeHhMYXJnZToKKyAgICAgICAgICAgICAgICBzaXplID0gc2Vs
ZWN0b3ItPmZvbnRTaXplRm9yS2V5d29yZChzZWxlY3Rvci0+ZG9jdW1lbnQoKSwgaWRlbnQsIGZv
bnREZXNjcmlwdGlvbi51c2VGaXhlZERlZmF1bHRTaXplKCkpOworICAgICAgICAgICAgICAgIGZv
bnREZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6ZShpZGVudCAtIENTU1ZhbHVlWHhTbWFsbCArIDEp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUxhcmdl
cjoKKyAgICAgICAgICAgICAgICBzaXplID0gbGFyZ2VyRm9udFNpemUocGFyZW50U2l6ZSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1ZhbHVlU21hbGxlcjoK
KyAgICAgICAgICAgICAgICBzaXplID0gc21hbGxlckZvbnRTaXplKHBhcmVudFNpemUpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5z
ZXRJc0Fic29sdXRlU2l6ZShwYXJlbnRJc0Fic29sdXRlU2l6ZSAmJiAoaWRlbnQgPT0gQ1NTVmFs
dWVMYXJnZXIgfHwgaWRlbnQgPT0gQ1NTVmFsdWVTbWFsbGVyKSk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBpbnQgdHlwZSA9IHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCk7
CisgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0SXNBYnNvbHV0ZVNpemUocGFyZW50SXNB
YnNvbHV0ZVNpemUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8fCAodHlwZSAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdHlwZSAhPSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX0VNUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmJiB0eXBlICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRVhTCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHR5cGUg
IT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19SRU1TKSk7CisgICAgICAgICAgICBpZiAoQ1NTUHJp
bWl0aXZlVmFsdWU6OmlzVW5pdFR5cGVMZW5ndGgodHlwZSkpCisgICAgICAgICAgICAgICAgc2l6
ZSA9IHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoPGZsb2F0PihzZWxlY3Rvci0+cGFyZW50
U3R5bGUoKSwgc2VsZWN0b3ItPnJvb3RFbGVtZW50U3R5bGUoKSwgMS4wLCB0cnVlKTsKKyAgICAg
ICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdF
KQorICAgICAgICAgICAgICAgIHNpemUgPSAocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUo
KSAqIHBhcmVudFNpemUpIC8gMTAwLjBmOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzaXplIDwgMCkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBzZWxlY3Rvci0+c2V0Rm9udFNpemUoZm9udERlc2NyaXB0
aW9uLCBzaXplKTsKKyAgICAgICAgc2VsZWN0b3ItPnNldEZvbnREZXNjcmlwdGlvbihmb250RGVz
Y3JpcHRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RhdGljIFByb3BlcnR5
SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkgeyByZXR1cm4gUHJvcGVydHlIYW5kbGVyKCZhcHBseUlu
aGVyaXRWYWx1ZSwgJmFwcGx5SW5pdGlhbFZhbHVlLCAmYXBwbHlWYWx1ZSk7IH0KK307CisKIGNs
YXNzIEFwcGx5UHJvcGVydHlGb250V2VpZ2h0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBh
cHBseVZhbHVlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBDU1NWYWx1ZSogdmFsdWUpCkBA
IC0xNTM2LDYgKzE2NTQsNyBAQCBDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQ
cm9wCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0RmxleEFsaWduLCBB
cHBseVByb3BlcnR5RGVmYXVsdDxFRmxleEFsaWduLCAmUmVuZGVyU3R5bGU6OmZsZXhBbGlnbiwg
RUZsZXhBbGlnbiwgJlJlbmRlclN0eWxlOjpzZXRGbGV4QWxpZ24sIEVGbGV4QWxpZ24sICZSZW5k
ZXJTdHlsZTo6aW5pdGlhbEZsZXhBbGlnbj46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJv
cGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0RmxleEZsb3csIEFwcGx5UHJvcGVydHlGbGV4
Rmxvdzo6Y3JlYXRlSGFuZGxlcigpKTsKIAorICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eUZvbnRTaXplLCBBcHBseVByb3BlcnR5Rm9udFNpemU6OmNyZWF0ZUhhbmRsZXIoKSk7CiAg
ICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Rm9udFN0eWxlLCBBcHBseVByb3BlcnR5
Rm9udDxGb250SXRhbGljLCAmRm9udERlc2NyaXB0aW9uOjppdGFsaWMsICZGb250RGVzY3JpcHRp
b246OnNldEl0YWxpYywgRm9udEl0YWxpY09mZj46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0
UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Rm9udFZhcmlhbnQsIEFwcGx5UHJvcGVydHlGb250
PEZvbnRTbWFsbENhcHMsICZGb250RGVzY3JpcHRpb246OnNtYWxsQ2FwcywgJkZvbnREZXNjcmlw
dGlvbjo6c2V0U21hbGxDYXBzLCBGb250U21hbGxDYXBzT2ZmPjo6Y3JlYXRlSGFuZGxlcigpKTsK
ICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0UmVuZGVyaW5nLCBBcHBseVBy
b3BlcnR5Rm9udDxUZXh0UmVuZGVyaW5nTW9kZSwgJkZvbnREZXNjcmlwdGlvbjo6dGV4dFJlbmRl
cmluZ01vZGUsICZGb250RGVzY3JpcHRpb246OnNldFRleHRSZW5kZXJpbmdNb2RlLCBBdXRvVGV4
dFJlbmRlcmluZz46OmNyZWF0ZUhhbmRsZXIoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAxMDI2MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2ODIsNzYgKzI2ODIs
NiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdE1hdGNoTmVhcmVzdE1haWxCbG9ja3F1b3RlQ29sb3I6CiAgICAgICAg
IEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMX0FORF9QUklNSVRJVkUobWF0Y2hOZWFyZXN0TWFp
bEJsb2NrcXVvdGVDb2xvciwgTWF0Y2hOZWFyZXN0TWFpbEJsb2NrcXVvdGVDb2xvcikKICAgICAg
ICAgcmV0dXJuOwotICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U2l6ZToKLSAgICB7Ci0gICAgICAg
IEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxlLT5mb250RGVzY3JpcHRp
b24oKTsKLSAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRTaXplKDApOwotICAgICAg
ICBmbG9hdCBvbGRTaXplID0gMDsKLSAgICAgICAgZmxvYXQgc2l6ZSA9IDA7Ci0KLSAgICAgICAg
Ym9vbCBwYXJlbnRJc0Fic29sdXRlU2l6ZSA9IGZhbHNlOwotICAgICAgICBpZiAobV9wYXJlbnRO
b2RlKSB7Ci0gICAgICAgICAgICBvbGRTaXplID0gbV9wYXJlbnRTdHlsZS0+Zm9udERlc2NyaXB0
aW9uKCkuc3BlY2lmaWVkU2l6ZSgpOwotICAgICAgICAgICAgcGFyZW50SXNBYnNvbHV0ZVNpemUg
PSBtX3BhcmVudFN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5pc0Fic29sdXRlU2l6ZSgpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgaWYgKGlzSW5oZXJpdCkgewotICAgICAgICAgICAgc2l6ZSA9IG9s
ZFNpemU7Ci0gICAgICAgICAgICBpZiAobV9wYXJlbnROb2RlKQotICAgICAgICAgICAgICAgIGZv
bnREZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6ZShtX3BhcmVudFN0eWxlLT5mb250RGVzY3JpcHRp
b24oKS5rZXl3b3JkU2l6ZSgpKTsKLSAgICAgICAgfSBlbHNlIGlmIChpc0luaXRpYWwpIHsKLSAg
ICAgICAgICAgIHNpemUgPSBmb250U2l6ZUZvcktleXdvcmQobV9jaGVja2VyLmRvY3VtZW50KCks
IENTU1ZhbHVlTWVkaXVtLCBmb250RGVzY3JpcHRpb24udXNlRml4ZWREZWZhdWx0U2l6ZSgpKTsK
LSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6ZShDU1NWYWx1ZU1lZGl1
bSAtIENTU1ZhbHVlWHhTbWFsbCArIDEpOwotICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpKSB7Ci0gICAgICAgICAgICAvLyBLZXl3b3JkcyBhcmUgYmVpbmcgdXNl
ZC4KLSAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKLSAg
ICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlWHhTbWFsbDoKLSAgICAgICAgICAgICAgICBjYXNl
IENTU1ZhbHVlWFNtYWxsOgotICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVTbWFsbDoKLSAg
ICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTWVkaXVtOgotICAgICAgICAgICAgICAgIGNhc2Ug
Q1NTVmFsdWVMYXJnZToKLSAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlWExhcmdlOgotICAg
ICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVYeExhcmdlOgotICAgICAgICAgICAgICAgIGNhc2Ug
Q1NTVmFsdWVXZWJraXRYeHhMYXJnZToKLSAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IGZvbnRT
aXplRm9yS2V5d29yZChtX2NoZWNrZXIuZG9jdW1lbnQoKSwgcHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCksIGZvbnREZXNjcmlwdGlvbi51c2VGaXhlZERlZmF1bHRTaXplKCkpOwotICAgICAgICAg
ICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemUocHJpbWl0aXZlVmFsdWUt
PmdldElkZW50KCkgLSBDU1NWYWx1ZVh4U21hbGwgKyAxKTsKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUxhcmdlcjoKLSAgICAgICAgICAg
ICAgICAgICAgc2l6ZSA9IGxhcmdlckZvbnRTaXplKG9sZFNpemUsIG1fY2hlY2tlci5kb2N1bWVu
dCgpLT5pblF1aXJrc01vZGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIGNhc2UgQ1NTVmFsdWVTbWFsbGVyOgotICAgICAgICAgICAgICAgICAgICBzaXpl
ID0gc21hbGxlckZvbnRTaXplKG9sZFNpemUsIG1fY2hlY2tlci5kb2N1bWVudCgpLT5pblF1aXJr
c01vZGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldElzQWJzb2x1dGVTaXplKHBhcmVudElzQWJzb2x1
dGVTaXplCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYg
KHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTGFyZ2VyCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlU21hbGxlcikpOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgaW50IHR5cGUgPSBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwotICAg
ICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldElzQWJzb2x1dGVTaXplKHBhcmVudElzQWJzb2x1
dGVTaXplCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwg
KHR5cGUgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT0gQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19FTVMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJiYgdHlwZSAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0VYUwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB0eXBlICE9IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfUkVNUykpOwotICAgICAgICAgICAgaWYgKENTU1ByaW1pdGl2
ZVZhbHVlOjppc1VuaXRUeXBlTGVuZ3RoKHR5cGUpKQotICAgICAgICAgICAgICAgIHNpemUgPSBw
cmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxmbG9hdD4obV9wYXJlbnRTdHlsZSwgbV9yb290
RWxlbWVudFN0eWxlLCAxLjAsIHRydWUpOwotICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAgICAgICAgICAgc2l6ZSA9
IChwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpICogb2xkU2l6ZSkgLyAxMDAuMGY7Ci0g
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAg
ICAgICAgaWYgKHNpemUgPCAwKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHNldEZv
bnRTaXplKGZvbnREZXNjcmlwdGlvbiwgc2l6ZSk7Ci0gICAgICAgIHNldEZvbnREZXNjcmlwdGlv
bihmb250RGVzY3JpcHRpb24pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdpZG93czoKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUxfQU5E
X1BSSU1JVElWRSh3aWRvd3MsIFdpZG93cykKICAgICAgICAgcmV0dXJuOwpAQCAtMzgxMiw2ICsz
NzQyLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRGbGV4UGFjazoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
RmxleEFsaWduOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGbGV4RmxvdzoKKyAgICBjYXNl
IENTU1Byb3BlcnR5Rm9udFNpemU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRTdHlsZToKICAg
ICBjYXNlIENTU1Byb3BlcnR5Rm9udFZhcmlhbnQ6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRS
ZW5kZXJpbmc6CkBAIC00NzM5LDIwICs0NjcwLDYgQEAgaW50IENTU1N0eWxlU2VsZWN0b3I6Omxl
Z2FjeUZvbnRTaXplKERvYwogICAgIHJldHVybiBmaW5kTmVhcmVzdExlZ2FjeUZvbnRTaXplPGZs
b2F0PihwaXhlbEZvbnRTaXplLCBmb250U2l6ZUZhY3RvcnMsIG1lZGl1bVNpemUpOwogfQogCi1m
bG9hdCBDU1NTdHlsZVNlbGVjdG9yOjpsYXJnZXJGb250U2l6ZShmbG9hdCBzaXplLCBib29sKSBj
b25zdAotewotICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoZXJlIHdlIGZhbGwgaW4gdGhlIHNp
emUgcmFuZ2VzICh4eC1zbWFsbCB0byB4eHgtbGFyZ2UpIGFuZCBzY2FsZSB1cCB0bwotICAgIC8v
IHRoZSBuZXh0IHNpemUgbGV2ZWwuCi0gICAgcmV0dXJuIHNpemUgKiAxLjJmOwotfQotCi1mbG9h
dCBDU1NTdHlsZVNlbGVjdG9yOjpzbWFsbGVyRm9udFNpemUoZmxvYXQgc2l6ZSwgYm9vbCkgY29u
c3QKLXsKLSAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGVyZSB3ZSBmYWxsIGluIHRoZSBzaXpl
IHJhbmdlcyAoeHgtc21hbGwgdG8geHh4LWxhcmdlKSBhbmQgc2NhbGUgZG93biB0bwotICAgIC8v
IHRoZSBuZXh0IHNpemUgbGV2ZWwuCi0gICAgcmV0dXJuIHNpemUgLyAxLjJmOwotfQotCiBzdGF0
aWMgQ29sb3IgY29sb3JGb3JDU1NWYWx1ZShpbnQgY3NzVmFsdWVJZCkKIHsKICAgICBzdHJ1Y3Qg
Q29sb3JWYWx1ZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgJKHJl
dmlzaW9uIDEwMjYzMSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEyNiw2ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRa
b29tKGZsb2F0IGYpIHsgbV9mb250RGlydHkgfD0gc3R5bGUoKS0+c2V0Wm9vbShmKTsgfQogICAg
IHZvaWQgc2V0RWZmZWN0aXZlWm9vbShmbG9hdCBmKSB7IG1fZm9udERpcnR5IHw9IHN0eWxlKCkt
PnNldEVmZmVjdGl2ZVpvb20oZik7IH0KICAgICB2b2lkIHNldFRleHRTaXplQWRqdXN0KGJvb2wg
YikgeyBtX2ZvbnREaXJ0eSB8PSBzdHlsZSgpLT5zZXRUZXh0U2l6ZUFkanVzdChiKTsgfQorICAg
IGJvb2wgaGFzUGFyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50Tm9kZTsgfQogCiBw
cml2YXRlOgogICAgIHZvaWQgaW5pdEZvclN0eWxlUmVzb2x2ZShFbGVtZW50KiwgUmVuZGVyU3R5
bGUqIHBhcmVudFN0eWxlID0gMCwgUHNldWRvSWQgPSBOT1BTRVVETyk7CkBAIC0xNjIsMTUgKzE2
Myw2IEBAIHB1YmxpYzoKICAgICAvLyBHaXZlbiBhIGZvbnQgc2l6ZSBpbiBwaXhlbCwgdGhpcyBm
dW5jdGlvbiB3aWxsIHJldHVybiBsZWdhY3kgZm9udCBzaXplIGJldHdlZW4gMSBhbmQgNy4KICAg
ICBzdGF0aWMgaW50IGxlZ2FjeUZvbnRTaXplKERvY3VtZW50KiwgaW50IHBpeGVsRm9udFNpemUs
IGJvb2wgc2hvdWxkVXNlRml4ZWREZWZhdWx0U2l6ZSk7CiAKLXByaXZhdGU6Ci0KLSAgICAvLyBX
aGVuIHRoZSBDU1Mga2V5d29yZCAibGFyZ2VyIiBpcyB1c2VkLCB0aGlzIGZ1bmN0aW9uIHdpbGwg
YXR0ZW1wdCB0byBtYXRjaCB3aXRoaW4gdGhlIGtleXdvcmQKLSAgICAvLyB0YWJsZSwgYW5kIGZh
aWxpbmcgdGhhdCwgd2lsbCBzaW1wbHkgbXVsdGlwbHkgYnkgMS4yLgotICAgIGZsb2F0IGxhcmdl
ckZvbnRTaXplKGZsb2F0IHNpemUsIGJvb2wgcXVpcmtzTW9kZSkgY29uc3Q7Ci0KLSAgICAvLyBM
aWtlIHRoZSBwcmV2aW91cyBmdW5jdGlvbiwgYnV0IGZvciB0aGUga2V5d29yZCAic21hbGxlciIu
Ci0gICAgZmxvYXQgc21hbGxlckZvbnRTaXplKGZsb2F0IHNpemUsIGJvb2wgcXVpcmtzTW9kZSkg
Y29uc3Q7Ci0KIHB1YmxpYzoKICAgICB2b2lkIHNldFN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+IHMpIHsgbV9zdHlsZSA9IHM7IH0gLy8gVXNlZCBieSB0aGUgZG9jdW1lbnQgd2hlbiBzZXR0
aW5nIHVwIGl0cyByb290IHN0eWxlLgogCkBAIC0xODIsOSArMTc0LDkgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIGZsb2F0IGdldENvbXB1dGVkU2l6ZUZyb21TcGVjaWZpZWRTaXplKERvY3VtZW50
KiwgZmxvYXQgem9vbUZhY3RvciwgYm9vbCBpc0Fic29sdXRlU2l6ZSwgZmxvYXQgc3BlY2lmaWVk
U2l6ZSwgRVNtYXJ0TWluaW11bUZvckZvbnRTaXplID0gVXNlU21hcnRNaW5pbXVtRm9yRm9udEZp
emUpOwogCi1wcml2YXRlOgogICAgIHZvaWQgc2V0Rm9udFNpemUoRm9udERlc2NyaXB0aW9uJiwg
ZmxvYXQgc2l6ZSk7CiAKK3ByaXZhdGU6CiAgICAgc3RhdGljIGZsb2F0IGdldENvbXB1dGVkU2l6
ZUZyb21TcGVjaWZpZWRTaXplKERvY3VtZW50KiwgUmVuZGVyU3R5bGUqLCBib29sIGlzQWJzb2x1
dGVTaXplLCBmbG9hdCBzcGVjaWZpZWRTaXplLCBib29sIHVzZVNWR1pvb21SdWxlcyk7CiAKIHB1
YmxpYzoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119788</attachid>
            <date>2011-12-18 16:44:46 -0800</date>
            <delta_ts>2011-12-18 19:01:48 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-74368-20111219114443.patch</filename>
            <type>text/plain</type>
            <size>14243</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzE5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDExLTEyLTE4ICBMdWtlIE1h
Y3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IENTUyBmb250LXNpemUgcHJvcGVydHkgaW4gQ1NTU3R5bGVBcHBseVByb3BlcnR5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzNjgKKworICAgICAg
ICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAvIHJl
ZmFjdG9yaW5nIG9ubHkuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlGb250U2l6ZTo6bGFyZ2VyRm9udFNp
emUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUZvbnRTaXplOjpzbWFsbGVyRm9u
dFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUZvbnRTaXplOjphcHBseUlu
aGVyaXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Rm9udFNpemU6OmFw
cGx5SW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlGb250U2l6
ZTo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Rm9udFNpemU6
OmNyZWF0ZUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5
OjpDU1NTdHlsZUFwcGx5UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkp
OgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpD
U1NTdHlsZVNlbGVjdG9yOjpoYXNQYXJlbnROb2RlKToKKwogMjAxMS0xMi0xOCAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTczOTU0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVBcHBseVByb3BlcnR5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVBcHBseVByb3BlcnR5LmNwcAkocmV2aXNpb24gMTAzMTkyKQorKysgU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3OCw2
ICs1NzgsMTIyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhh
bmRsZXIoKSB7IHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoJmFwcGx5SW5oZXJpdFZhbHVlLCAmYXBw
bHlJbml0aWFsVmFsdWUsICZhcHBseVZhbHVlKTsgfQogfTsKIAorY2xhc3MgQXBwbHlQcm9wZXJ0
eUZvbnRTaXplIHsKK3ByaXZhdGU6CisgICAgLy8gV2hlbiB0aGUgQ1NTIGtleXdvcmQgImxhcmdl
ciIgaXMgdXNlZCwgdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWF0Y2ggd2l0aGluIHRo
ZSBrZXl3b3JkCisgICAgLy8gdGFibGUsIGFuZCBmYWlsaW5nIHRoYXQsIHdpbGwgc2ltcGx5IG11
bHRpcGx5IGJ5IDEuMi4KKyAgICBzdGF0aWMgZmxvYXQgbGFyZ2VyRm9udFNpemUoZmxvYXQgc2l6
ZSkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoZXJlIHdlIGZhbGwgaW4g
dGhlIHNpemUgcmFuZ2VzICh4eC1zbWFsbCB0byB4eHgtbGFyZ2UpIGFuZCBzY2FsZSB1cCB0bwor
ICAgICAgICAvLyB0aGUgbmV4dCBzaXplIGxldmVsLgorICAgICAgICByZXR1cm4gc2l6ZSAqIDEu
MmY7CisgICAgfQorCisgICAgLy8gTGlrZSB0aGUgcHJldmlvdXMgZnVuY3Rpb24sIGJ1dCBmb3Ig
dGhlIGtleXdvcmQgInNtYWxsZXIiLgorICAgIHN0YXRpYyBmbG9hdCBzbWFsbGVyRm9udFNpemUo
ZmxvYXQgc2l6ZSkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoZXJlIHdl
IGZhbGwgaW4gdGhlIHNpemUgcmFuZ2VzICh4eC1zbWFsbCB0byB4eHgtbGFyZ2UpIGFuZCBzY2Fs
ZSBkb3duIHRvCisgICAgICAgIC8vIHRoZSBuZXh0IHNpemUgbGV2ZWwuCisgICAgICAgIHJldHVy
biBzaXplIC8gMS4yZjsKKyAgICB9CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgYXBwbHlJbmhl
cml0VmFsdWUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IpCisgICAgeworICAgICAgICBmbG9h
dCBzaXplID0gc2VsZWN0b3ItPnBhcmVudFN0eWxlKCktPmZvbnREZXNjcmlwdGlvbigpLnNwZWNp
ZmllZFNpemUoKTsKKworICAgICAgICBpZiAoc2l6ZSA8IDApCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IHNlbGVjdG9yLT5z
dHlsZSgpLT5mb250RGVzY3JpcHRpb24oKTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEtl
eXdvcmRTaXplKHNlbGVjdG9yLT5wYXJlbnRTdHlsZSgpLT5mb250RGVzY3JpcHRpb24oKS5rZXl3
b3JkU2l6ZSgpKTsKKyAgICAgICAgc2VsZWN0b3ItPnNldEZvbnRTaXplKGZvbnREZXNjcmlwdGlv
biwgc2l6ZSk7CisgICAgICAgIHNlbGVjdG9yLT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2Ny
aXB0aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGFwcGx5
SW5pdGlhbFZhbHVlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yKQorICAgIHsKKyAgICAgICAg
Rm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IHNlbGVjdG9yLT5zdHlsZSgpLT5mb250
RGVzY3JpcHRpb24oKTsKKyAgICAgICAgZmxvYXQgc2l6ZSA9IHNlbGVjdG9yLT5mb250U2l6ZUZv
cktleXdvcmQoc2VsZWN0b3ItPmRvY3VtZW50KCksIENTU1ZhbHVlTWVkaXVtLCBmb250RGVzY3Jp
cHRpb24udXNlRml4ZWREZWZhdWx0U2l6ZSgpKTsKKworICAgICAgICBpZiAoc2l6ZSA8IDApCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRT
aXplKENTU1ZhbHVlTWVkaXVtIC0gQ1NTVmFsdWVYeFNtYWxsICsgMSk7CisgICAgICAgIHNlbGVj
dG9yLT5zZXRGb250U2l6ZShmb250RGVzY3JpcHRpb24sIHNpemUpOworICAgICAgICBzZWxlY3Rv
ci0+c2V0Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1N0eWxlU2VsZWN0b3IqIHNl
bGVjdG9yLCBDU1NWYWx1ZSogdmFsdWUpCisgICAgeworICAgICAgICBpZiAoIXZhbHVlLT5pc1By
aW1pdGl2ZVZhbHVlKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgQ1NTUHJpbWl0
aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
Pih2YWx1ZSk7CisKKyAgICAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IHNl
bGVjdG9yLT5zdHlsZSgpLT5mb250RGVzY3JpcHRpb24oKTsKKyAgICAgICAgZm9udERlc2NyaXB0
aW9uLnNldEtleXdvcmRTaXplKDApOworICAgICAgICBmbG9hdCBwYXJlbnRTaXplID0gMDsKKyAg
ICAgICAgYm9vbCBwYXJlbnRJc0Fic29sdXRlU2l6ZSA9IGZhbHNlOworICAgICAgICBmbG9hdCBz
aXplID0gMDsKKworICAgICAgICBpZiAoc2VsZWN0b3ItPmhhc1BhcmVudE5vZGUoKSkgeworICAg
ICAgICAgICAgcGFyZW50U2l6ZSA9IHNlbGVjdG9yLT5wYXJlbnRTdHlsZSgpLT5mb250RGVzY3Jp
cHRpb24oKS5zcGVjaWZpZWRTaXplKCk7CisgICAgICAgICAgICBwYXJlbnRJc0Fic29sdXRlU2l6
ZSA9IHNlbGVjdG9yLT5wYXJlbnRTdHlsZSgpLT5mb250RGVzY3JpcHRpb24oKS5pc0Fic29sdXRl
U2l6ZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGludCBpZGVudCA9IHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAvLyBLZXl3b3JkcyBhcmUgYmVpbmcgdXNl
ZC4KKyAgICAgICAgICAgIHN3aXRjaCAoaWRlbnQpIHsKKyAgICAgICAgICAgIGNhc2UgQ1NTVmFs
dWVYeFNtYWxsOgorICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVhTbWFsbDoKKyAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVTbWFsbDoKKyAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVNZWRpdW06Cisg
ICAgICAgICAgICBjYXNlIENTU1ZhbHVlTGFyZ2U6CisgICAgICAgICAgICBjYXNlIENTU1ZhbHVl
WExhcmdlOgorICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVh4TGFyZ2U6CisgICAgICAgICAgICBj
YXNlIENTU1ZhbHVlV2Via2l0WHh4TGFyZ2U6CisgICAgICAgICAgICAgICAgc2l6ZSA9IHNlbGVj
dG9yLT5mb250U2l6ZUZvcktleXdvcmQoc2VsZWN0b3ItPmRvY3VtZW50KCksIGlkZW50LCBmb250
RGVzY3JpcHRpb24udXNlRml4ZWREZWZhdWx0U2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBmb250
RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemUoaWRlbnQgLSBDU1NWYWx1ZVh4U21hbGwgKyAxKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVMYXJnZXI6
CisgICAgICAgICAgICAgICAgc2l6ZSA9IGxhcmdlckZvbnRTaXplKHBhcmVudFNpemUpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVNtYWxsZXI6Cisg
ICAgICAgICAgICAgICAgc2l6ZSA9IHNtYWxsZXJGb250U2l6ZShwYXJlbnRTaXplKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0
SXNBYnNvbHV0ZVNpemUocGFyZW50SXNBYnNvbHV0ZVNpemUgJiYgKGlkZW50ID09IENTU1ZhbHVl
TGFyZ2VyIHx8IGlkZW50ID09IENTU1ZhbHVlU21hbGxlcikpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgaW50IHR5cGUgPSBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwor
ICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldElzQWJzb2x1dGVTaXplKHBhcmVudElzQWJz
b2x1dGVTaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fHwgKHR5cGUgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT0gQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19FTVMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJiYgdHlwZSAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0VYUworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB0eXBlICE9
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUkVNUykpOworICAgICAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5pc0xlbmd0aCgpKQorICAgICAgICAgICAgICAgIHNpemUgPSBwcmltaXRpdmVWYWx1
ZS0+Y29tcHV0ZUxlbmd0aDxmbG9hdD4oc2VsZWN0b3ItPnBhcmVudFN0eWxlKCksIHNlbGVjdG9y
LT5yb290RWxlbWVudFN0eWxlKCksIDEuMCwgdHJ1ZSk7CisgICAgICAgICAgICBlbHNlIGlmIChw
cmltaXRpdmVWYWx1ZS0+aXNQZXJjZW50YWdlKCkpCisgICAgICAgICAgICAgICAgc2l6ZSA9IChw
cmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpICogcGFyZW50U2l6ZSkgLyAxMDAuMGY7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHNpemUgPCAwKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHNlbGVj
dG9yLT5zZXRGb250U2l6ZShmb250RGVzY3JpcHRpb24sIHNpemUpOworICAgICAgICBzZWxlY3Rv
ci0+c2V0Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRsZXIoKSB7IHJl
dHVybiBQcm9wZXJ0eUhhbmRsZXIoJmFwcGx5SW5oZXJpdFZhbHVlLCAmYXBwbHlJbml0aWFsVmFs
dWUsICZhcHBseVZhbHVlKTsgfQorfTsKKwogY2xhc3MgQXBwbHlQcm9wZXJ0eUZvbnRXZWlnaHQg
ewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTU3R5bGVTZWxlY3Rvciog
c2VsZWN0b3IsIENTU1ZhbHVlKiB2YWx1ZSkKQEAgLTE1MjUsNiArMTY0MSw3IEBAIENTU1N0eWxl
QXBwbHlQcm9wZXJ0eTo6Q1NTU3R5bGVBcHBseVByb3AKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlXZWJraXRGbGV4V3JhcCwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8RUZsZXhXcmFw
LCAmUmVuZGVyU3R5bGU6OmZsZXhXcmFwLCBFRmxleFdyYXAsICZSZW5kZXJTdHlsZTo6c2V0Rmxl
eFdyYXAsIEVGbGV4V3JhcCwgJlJlbmRlclN0eWxlOjppbml0aWFsRmxleFdyYXA+OjpjcmVhdGVI
YW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdEZsZXhG
bG93LCBBcHBseVByb3BlcnR5RXhwYW5kaW5nPFN1cHByZXNzVmFsdWUsIENTU1Byb3BlcnR5V2Vi
a2l0RmxleERpcmVjdGlvbiwgQ1NTUHJvcGVydHlXZWJraXRGbGV4V3JhcD46OmNyZWF0ZUhhbmRs
ZXIoKSk7CiAKKyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlGb250U2l6ZSwgQXBw
bHlQcm9wZXJ0eUZvbnRTaXplOjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFu
ZGxlcihDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgQXBwbHlQcm9wZXJ0eUZvbnQ8Rm9udEl0YWxpYywg
JkZvbnREZXNjcmlwdGlvbjo6aXRhbGljLCAmRm9udERlc2NyaXB0aW9uOjpzZXRJdGFsaWMsIEZv
bnRJdGFsaWNPZmY+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihD
U1NQcm9wZXJ0eUZvbnRWYXJpYW50LCBBcHBseVByb3BlcnR5Rm9udDxGb250U21hbGxDYXBzLCAm
Rm9udERlc2NyaXB0aW9uOjpzbWFsbENhcHMsICZGb250RGVzY3JpcHRpb246OnNldFNtYWxsQ2Fw
cywgRm9udFNtYWxsQ2Fwc09mZj46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlI
YW5kbGVyKENTU1Byb3BlcnR5VGV4dFJlbmRlcmluZywgQXBwbHlQcm9wZXJ0eUZvbnQ8VGV4dFJl
bmRlcmluZ01vZGUsICZGb250RGVzY3JpcHRpb246OnRleHRSZW5kZXJpbmdNb2RlLCAmRm9udERl
c2NyaXB0aW9uOjpzZXRUZXh0UmVuZGVyaW5nTW9kZSwgQXV0b1RleHRSZW5kZXJpbmc+OjpjcmVh
dGVIYW5kbGVyKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cAkocmV2aXNpb24gMTAzMTkyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjgxLDc2ICsyNjgxLDYgQEAgdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRN
YXRjaE5lYXJlc3RNYWlsQmxvY2txdW90ZUNvbG9yOgogICAgICAgICBIQU5ETEVfSU5IRVJJVF9B
TkRfSU5JVElBTF9BTkRfUFJJTUlUSVZFKG1hdGNoTmVhcmVzdE1haWxCbG9ja3F1b3RlQ29sb3Is
IE1hdGNoTmVhcmVzdE1haWxCbG9ja3F1b3RlQ29sb3IpCiAgICAgICAgIHJldHVybjsKLSAgICBj
YXNlIENTU1Byb3BlcnR5Rm9udFNpemU6Ci0gICAgewotICAgICAgICBGb250RGVzY3JpcHRpb24g
Zm9udERlc2NyaXB0aW9uID0gbV9zdHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7Ci0gICAgICAgIGZv
bnREZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6ZSgwKTsKLSAgICAgICAgZmxvYXQgb2xkU2l6ZSA9
IDA7Ci0gICAgICAgIGZsb2F0IHNpemUgPSAwOwotCi0gICAgICAgIGJvb2wgcGFyZW50SXNBYnNv
bHV0ZVNpemUgPSBmYWxzZTsKLSAgICAgICAgaWYgKG1fcGFyZW50Tm9kZSkgewotICAgICAgICAg
ICAgb2xkU2l6ZSA9IG1fcGFyZW50U3R5bGUtPmZvbnREZXNjcmlwdGlvbigpLnNwZWNpZmllZFNp
emUoKTsKLSAgICAgICAgICAgIHBhcmVudElzQWJzb2x1dGVTaXplID0gbV9wYXJlbnRTdHlsZS0+
Zm9udERlc2NyaXB0aW9uKCkuaXNBYnNvbHV0ZVNpemUoKTsKLSAgICAgICAgfQotCi0gICAgICAg
IGlmIChpc0luaGVyaXQpIHsKLSAgICAgICAgICAgIHNpemUgPSBvbGRTaXplOwotICAgICAgICAg
ICAgaWYgKG1fcGFyZW50Tm9kZSkKLSAgICAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0
S2V5d29yZFNpemUobV9wYXJlbnRTdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkua2V5d29yZFNpemUo
KSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoaXNJbml0aWFsKSB7Ci0gICAgICAgICAgICBzaXplID0g
Zm9udFNpemVGb3JLZXl3b3JkKG1fY2hlY2tlci5kb2N1bWVudCgpLCBDU1NWYWx1ZU1lZGl1bSwg
Zm9udERlc2NyaXB0aW9uLnVzZUZpeGVkRGVmYXVsdFNpemUoKSk7Ci0gICAgICAgICAgICBmb250
RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemUoQ1NTVmFsdWVNZWRpdW0gLSBDU1NWYWx1ZVh4U21h
bGwgKyAxKTsKLSAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkg
ewotICAgICAgICAgICAgLy8gS2V5d29yZHMgYXJlIGJlaW5nIHVzZWQuCi0gICAgICAgICAgICBz
d2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZVh4U21hbGw6Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVhTbWFsbDoK
LSAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlU21hbGw6Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZU1lZGl1bToKLSAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTGFyZ2U6Ci0g
ICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVhMYXJnZToKLSAgICAgICAgICAgICAgICBjYXNl
IENTU1ZhbHVlWHhMYXJnZToKLSAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0WHh4
TGFyZ2U6Ci0gICAgICAgICAgICAgICAgICAgIHNpemUgPSBmb250U2l6ZUZvcktleXdvcmQobV9j
aGVja2VyLmRvY3VtZW50KCksIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpLCBmb250RGVzY3Jp
cHRpb24udXNlRml4ZWREZWZhdWx0U2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgZm9udERl
c2NyaXB0aW9uLnNldEtleXdvcmRTaXplKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpIC0gQ1NT
VmFsdWVYeFNtYWxsICsgMSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVMYXJnZXI6Ci0gICAgICAgICAgICAgICAgICAgIHNpemUgPSBs
YXJnZXJGb250U2l6ZShvbGRTaXplLCBtX2NoZWNrZXIuZG9jdW1lbnQoKS0+aW5RdWlya3NNb2Rl
KCkpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIENT
U1ZhbHVlU21hbGxlcjoKLSAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IHNtYWxsZXJGb250U2l6
ZShvbGRTaXplLCBtX2NoZWNrZXIuZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpOwotICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZvbnREZXNj
cmlwdGlvbi5zZXRJc0Fic29sdXRlU2l6ZShwYXJlbnRJc0Fic29sdXRlU2l6ZQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIChwcmltaXRpdmVWYWx1ZS0+
Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUxhcmdlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8fCBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NWYWx1ZVNtYWxsZXIpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGludCB0eXBl
ID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKTsKLSAgICAgICAgICAgIGZvbnREZXNj
cmlwdGlvbi5zZXRJc0Fic29sdXRlU2l6ZShwYXJlbnRJc0Fic29sdXRlU2l6ZQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICh0eXBlICE9IENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmJiB0eXBlICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRU1T
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHR5
cGUgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19FWFMKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdHlwZSAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1JFTVMpKTsKLSAgICAgICAgICAgIGlmIChDU1NQcmltaXRpdmVWYWx1ZTo6aXNVbml0VHlw
ZUxlbmd0aCh0eXBlKSkKLSAgICAgICAgICAgICAgICBzaXplID0gcHJpbWl0aXZlVmFsdWUtPmNv
bXB1dGVMZW5ndGg8ZmxvYXQ+KG1fcGFyZW50U3R5bGUsIG1fcm9vdEVsZW1lbnRTdHlsZSwgMS4w
LCB0cnVlKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19QRVJDRU5UQUdFKQotICAgICAgICAgICAgICAgIHNpemUgPSAocHJpbWl0aXZlVmFsdWUt
PmdldEZsb2F0VmFsdWUoKSAqIG9sZFNpemUpIC8gMTAwLjBmOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzaXplIDwg
MCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBzZXRGb250U2l6ZShmb250RGVzY3Jp
cHRpb24sIHNpemUpOwotICAgICAgICBzZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9u
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGNhc2UgQ1NTUHJvcGVydHlXaWRvd3M6
CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMX0FORF9QUklNSVRJVkUod2lkb3dz
LCBXaWRvd3MpCiAgICAgICAgIHJldHVybjsKQEAgLTM4MDEsNiArMzczMSw3IEBAIHZvaWQgQ1NT
U3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0RmxleERpcmVjdGlvbjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RmxleEZsb3c6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhXcmFwOgorICAgIGNhc2UgQ1NTUHJvcGVydHlG
b250U2l6ZToKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0eWxlOgogICAgIGNhc2UgQ1NTUHJv
cGVydHlGb250VmFyaWFudDoKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dFJlbmRlcmluZzoKQEAg
LTQ3MjksMjAgKzQ2NjAsNiBAQCBpbnQgQ1NTU3R5bGVTZWxlY3Rvcjo6bGVnYWN5Rm9udFNpemUo
RG9jCiAgICAgcmV0dXJuIGZpbmROZWFyZXN0TGVnYWN5Rm9udFNpemU8ZmxvYXQ+KHBpeGVsRm9u
dFNpemUsIGZvbnRTaXplRmFjdG9ycywgbWVkaXVtU2l6ZSk7CiB9CiAKLWZsb2F0IENTU1N0eWxl
U2VsZWN0b3I6OmxhcmdlckZvbnRTaXplKGZsb2F0IHNpemUsIGJvb2wpIGNvbnN0Ci17Ci0gICAg
Ly8gRklYTUU6IEZpZ3VyZSBvdXQgd2hlcmUgd2UgZmFsbCBpbiB0aGUgc2l6ZSByYW5nZXMgKHh4
LXNtYWxsIHRvIHh4eC1sYXJnZSkgYW5kIHNjYWxlIHVwIHRvCi0gICAgLy8gdGhlIG5leHQgc2l6
ZSBsZXZlbC4KLSAgICByZXR1cm4gc2l6ZSAqIDEuMmY7Ci19Ci0KLWZsb2F0IENTU1N0eWxlU2Vs
ZWN0b3I6OnNtYWxsZXJGb250U2l6ZShmbG9hdCBzaXplLCBib29sKSBjb25zdAotewotICAgIC8v
IEZJWE1FOiBGaWd1cmUgb3V0IHdoZXJlIHdlIGZhbGwgaW4gdGhlIHNpemUgcmFuZ2VzICh4eC1z
bWFsbCB0byB4eHgtbGFyZ2UpIGFuZCBzY2FsZSBkb3duIHRvCi0gICAgLy8gdGhlIG5leHQgc2l6
ZSBsZXZlbC4KLSAgICByZXR1cm4gc2l6ZSAvIDEuMmY7Ci19Ci0KIHN0YXRpYyBDb2xvciBjb2xv
ckZvckNTU1ZhbHVlKGludCBjc3NWYWx1ZUlkKQogewogICAgIHN0cnVjdCBDb2xvclZhbHVlIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAkocmV2aXNpb24gMTAzMTky
KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtMTI2LDYgKzEyNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFpvb20oZmxvYXQgZikg
eyBtX2ZvbnREaXJ0eSB8PSBzdHlsZSgpLT5zZXRab29tKGYpOyB9CiAgICAgdm9pZCBzZXRFZmZl
Y3RpdmVab29tKGZsb2F0IGYpIHsgbV9mb250RGlydHkgfD0gc3R5bGUoKS0+c2V0RWZmZWN0aXZl
Wm9vbShmKTsgfQogICAgIHZvaWQgc2V0VGV4dFNpemVBZGp1c3QoYm9vbCBiKSB7IG1fZm9udERp
cnR5IHw9IHN0eWxlKCktPnNldFRleHRTaXplQWRqdXN0KGIpOyB9CisgICAgYm9vbCBoYXNQYXJl
bnROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnROb2RlOyB9CiAKIHByaXZhdGU6CiAgICAg
dm9pZCBpbml0Rm9yU3R5bGVSZXNvbHZlKEVsZW1lbnQqLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5
bGUgPSAwLCBQc2V1ZG9JZCA9IE5PUFNFVURPKTsKQEAgLTE2MywxNSArMTY0LDYgQEAgcHVibGlj
OgogICAgIC8vIEdpdmVuIGEgZm9udCBzaXplIGluIHBpeGVsLCB0aGlzIGZ1bmN0aW9uIHdpbGwg
cmV0dXJuIGxlZ2FjeSBmb250IHNpemUgYmV0d2VlbiAxIGFuZCA3LgogICAgIHN0YXRpYyBpbnQg
bGVnYWN5Rm9udFNpemUoRG9jdW1lbnQqLCBpbnQgcGl4ZWxGb250U2l6ZSwgYm9vbCBzaG91bGRV
c2VGaXhlZERlZmF1bHRTaXplKTsKIAotcHJpdmF0ZToKLQotICAgIC8vIFdoZW4gdGhlIENTUyBr
ZXl3b3JkICJsYXJnZXIiIGlzIHVzZWQsIHRoaXMgZnVuY3Rpb24gd2lsbCBhdHRlbXB0IHRvIG1h
dGNoIHdpdGhpbiB0aGUga2V5d29yZAotICAgIC8vIHRhYmxlLCBhbmQgZmFpbGluZyB0aGF0LCB3
aWxsIHNpbXBseSBtdWx0aXBseSBieSAxLjIuCi0gICAgZmxvYXQgbGFyZ2VyRm9udFNpemUoZmxv
YXQgc2l6ZSwgYm9vbCBxdWlya3NNb2RlKSBjb25zdDsKLQotICAgIC8vIExpa2UgdGhlIHByZXZp
b3VzIGZ1bmN0aW9uLCBidXQgZm9yIHRoZSBrZXl3b3JkICJzbWFsbGVyIi4KLSAgICBmbG9hdCBz
bWFsbGVyRm9udFNpemUoZmxvYXQgc2l6ZSwgYm9vbCBxdWlya3NNb2RlKSBjb25zdDsKLQogcHVi
bGljOgogICAgIHZvaWQgc2V0U3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gcykgeyBtX3N0
eWxlID0gczsgfSAvLyBVc2VkIGJ5IHRoZSBkb2N1bWVudCB3aGVuIHNldHRpbmcgdXAgaXRzIHJv
b3Qgc3R5bGUuCiAKQEAgLTE4Myw5ICsxNzUsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgZmxv
YXQgZ2V0Q29tcHV0ZWRTaXplRnJvbVNwZWNpZmllZFNpemUoRG9jdW1lbnQqLCBmbG9hdCB6b29t
RmFjdG9yLCBib29sIGlzQWJzb2x1dGVTaXplLCBmbG9hdCBzcGVjaWZpZWRTaXplLCBFU21hcnRN
aW5pbXVtRm9yRm9udFNpemUgPSBVc2VTbWFydE1pbmltdW1Gb3JGb250Rml6ZSk7CiAKLXByaXZh
dGU6CiAgICAgdm9pZCBzZXRGb250U2l6ZShGb250RGVzY3JpcHRpb24mLCBmbG9hdCBzaXplKTsK
IAorcHJpdmF0ZToKICAgICBzdGF0aWMgZmxvYXQgZ2V0Q29tcHV0ZWRTaXplRnJvbVNwZWNpZmll
ZFNpemUoRG9jdW1lbnQqLCBSZW5kZXJTdHlsZSosIGJvb2wgaXNBYnNvbHV0ZVNpemUsIGZsb2F0
IHNwZWNpZmllZFNpemUsIGJvb2wgdXNlU1ZHWm9vbVJ1bGVzKTsKIAogcHVibGljOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>