<?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>92445</bug_id>
          
          <creation_ts>2012-07-26 18:45:47 -0700</creation_ts>
          <short_desc>[Chromium] HarfBuzzShaper can&apos;t handle segmented text run</short_desc>
          <delta_ts>2012-07-29 18:47:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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="Kenichi Ishibashi">bashi</reporter>
          <assigned_to name="Kenichi Ishibashi">bashi</assigned_to>
          <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>679998</commentid>
    <comment_count>0</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-07-26 18:45:47 -0700</bug_when>
    <thetext>The same problem of https://bugs.webkit.org/show_bug.cgi?id=72095 happens when we build chromium with use_harfbuzz_ng=1 GYP flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680014</commentid>
    <comment_count>1</comment_count>
      <attachid>154810</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-07-26 19:09:50 -0700</bug_when>
    <thetext>Created attachment 154810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680015</commentid>
    <comment_count>2</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-07-26 19:11:31 -0700</bug_when>
    <thetext>Hi Tony,

Could you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680785</commentid>
    <comment_count>3</comment_count>
      <attachid>154810</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-27 10:32:01 -0700</bug_when>
    <thetext>Comment on attachment 154810
Patch

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

&gt; Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:194
&gt; +    return index &gt;= m_fromIndex &amp;&amp; index &lt; m_toIndex;

Nit: I think &quot;m_fromIndex &lt;= index &amp;&amp; index &lt; m_toIndex&quot; is a little easier to read.

&gt; Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:100
&gt; +    bool shouldDrawCharacter(int index);

Nit: Maybe name this shouldDrawCharacterAt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681617</commentid>
    <comment_count>4</comment_count>
      <attachid>155187</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-07-29 16:55:45 -0700</bug_when>
    <thetext>Created attachment 155187
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681618</commentid>
    <comment_count>5</comment_count>
      <attachid>154810</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-07-29 16:56:28 -0700</bug_when>
    <thetext>Comment on attachment 154810
Patch

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

Thank you for review!

&gt;&gt; Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:194
&gt;&gt; +    return index &gt;= m_fromIndex &amp;&amp; index &lt; m_toIndex;
&gt; 
&gt; Nit: I think &quot;m_fromIndex &lt;= index &amp;&amp; index &lt; m_toIndex&quot; is a little easier to read.

Done.

&gt;&gt; Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:100
&gt;&gt; +    bool shouldDrawCharacter(int index);
&gt; 
&gt; Nit: Maybe name this shouldDrawCharacterAt?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681638</commentid>
    <comment_count>6</comment_count>
      <attachid>155187</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-29 18:47:14 -0700</bug_when>
    <thetext>Comment on attachment 155187
Patch for landing

Clearing flags on attachment: 155187

Committed r123991: &lt;http://trac.webkit.org/changeset/123991&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681639</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-29 18:47:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154810</attachid>
            <date>2012-07-26 19:09:50 -0700</date>
            <delta_ts>2012-07-29 16:56:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92445-20120727110938.patch</filename>
            <type>text/plain</type>
            <size>9264</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzBkNmFhMmMxZmY4YWEw
NzdkODU0NjhkZTA1ZDkwMDc0NDE5NWNkMi4uZTFhYjJjZTIzODQwNmI1MzcwZDA1ZGEyMjNlMmVl
MGIxMjM2OGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA3LTI2ICBLZW5p
Y2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1d
IEhhcmZCdXp6U2hhcGVyIGNhbid0IGhhbmRsZSBzZWdtZW50ZWQgdGV4dCBydW4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNDQ1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyB0aGUgcmFuZ2UgdG8g
YmUgZGlzcGxheWVkIHRvIEhhcmZCdXp6U2hhcGVyLiBUaGUgc2hhcGVyIGNhbGN1bGF0ZXMgcG9z
aXRpb25zIGFuZCBhZHZhbmNlcyBvZiBlYWNoIGdseXBoCisgICAgICAgIHJlZ2FyZGxlc3Mgb2Yg
dGhlIHJhbmdlLCBidXQgb25seSBhZGQgZ2x5cGhzIHdoaWNoIGFyZSBpbiB0aGUgcmFuZ2UuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3RleHQv
aW50ZXJuYXRpb25hbC9kcmF3LWNvbXBsZXgtdGV4dC1mcm9tLXRvLmh0bWwgc2hvdWxkCisgICAg
ICAgIHdvcmsgYXMgZXhwZWN0ZWQgb25jZSB3ZSBtb3ZlIHRvIHVzZSBoYXJmYnV6ei1uZyBvbiBs
aW51eC4gTm90ZSB0aGF0IHRoZSBjdXJyZW50IGV4cGVjdGF0aW9uIHdpbGwgbmVlZCB0byBiZSBy
ZWJhc2VsaW5lZAorICAgICAgICBiZWNhdXNlIHRoZSBvbGQgaGIgc2hhcGVyIChDb21wbGV4VGV4
dENvbnRyb2xsZXIpIG1pc2hhbmRsZXMgdGhlIHJhbmdlLiB8dG98IHNob3VsZCBiZSBleGNsdXNp
dmUuIEknbGwgcmViYXNlbGluZQorICAgICAgICB0aGUgZXhwZWN0YXRpb24gbGF0ZXIuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250SGFyZkJ1enouY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0NvbXBsZXhUZXh0KTogQ2FsbCBzaGFwZXIuc2V0RHJh
d1JhbmdlKCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1
enpTaGFwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGFyZkJ1enpTaGFwZXI6OkhhcmZCdXp6
U2hhcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhhcmZCdXp6U2hhcGVyOjpzZXREcmF3UmFuZ2Up
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SGFyZkJ1enpT
aGFwZXI6OnNob3VsZERyYXdDaGFyYWN0ZXIpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okhh
cmZCdXp6U2hhcGVyOjpzaGFwZUhhcmZCdXp6UnVucyk6IEFkZGVkIHZhcmlhYmxlcyB0aGF0IGhv
bGQgcGVuZGluZyBhZHZhbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhhcmZCdXp6U2hhcGVyOjpz
ZXRHbHlwaFBvc2l0aW9uc0ZvckhhcmZCdXp6UnVuKTogQWRkIG9ubHkgZ2x5cGhzIHdoaWNoIGFy
ZSBpbiB0aGUgZ2l2ZW4gcmFuZ2UgdG8gZ2x5cGhCdWZmZXIuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1enpTaGFwZXIuaDoKKyAgICAgICAgKEhhcmZCdXp6
U2hhcGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0
TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdDb21wbGV4VGV4dCk6IENhbGwg
c2hhcGVyLnNldERyYXdSYW5nZSgpLgorCiAyMDEyLTA3LTI2ICBDaGFuZyBTaHUgIDxjc2h1QHdl
YmtpdC5vcmc+CiAKICAgICAgICAgU3VwcG9ydCBjb25zdHJ1Y3Rvci10eXBlIHN0YXRpYyByZWFk
b25seSBhdHRyaWJ1dGUgZm9yIENvZGVHZW5lcmF0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250SGFyZkJ1enouY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9udEhhcmZCdXp6LmNwcAppbmRl
eCAxOWEwYjlhNmQ1YTcxNDJkODI4MTcxYzE4OTNiMWViNjQzZDVjYWE4Li45N2FkZDYyMjVhMjYz
ZjNhODI4ZGJiOTkyNGYyNjNmNzA4NjljMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250SGFyZkJ1enouY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRIYXJmQnV6ei5jcHAKQEAgLTE4
NSw2ICsxODUsNyBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQq
IGdjLCBjb25zdCBUZXh0UnVuJiBydW4sCiAjaWYgVVNFKEhBUkZCVVpaX05HKQogICAgIEdseXBo
QnVmZmVyIGdseXBoQnVmZmVyOwogICAgIEhhcmZCdXp6U2hhcGVyIHNoYXBlcih0aGlzLCBydW4p
OworICAgIHNoYXBlci5zZXREcmF3UmFuZ2UoZnJvbSwgdG8pOwogICAgIGlmICghc2hhcGVyLnNo
YXBlKCZnbHlwaEJ1ZmZlcikpCiAgICAgICAgIHJldHVybjsKICAgICBGbG9hdFBvaW50IGFkanVz
dGVkUG9pbnQgPSBzaGFwZXIuYWRqdXN0U3RhcnRQb2ludChwb2ludCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9uZy9IYXJmQnV6elNoYXBl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9uZy9IYXJm
QnV6elNoYXBlci5jcHAKaW5kZXggZWFmMzA5OWZkMjhmMzc4Y2JlYWU0YjRmNmUxMjRkODg3NDc1
MTQwOC4uMGI3M2QwYzdkMzRiYzZkMmJiNmE2M2MzNDgyZmU0Y2UzYWMwY2JjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1enpT
aGFwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L25nL0hhcmZCdXp6U2hhcGVyLmNwcApAQCAtMTY3LDYgKzE2Nyw4IEBAIHN0YXRpYyB2b2lkIG5v
cm1hbGl6ZUNoYXJhY3RlcnMoY29uc3QgVUNoYXIqIHNvdXJjZSwgVUNoYXIqIGRlc3RpbmF0aW9u
LCBpbnQgbGVuCiAKIEhhcmZCdXp6U2hhcGVyOjpIYXJmQnV6elNoYXBlcihjb25zdCBGb250KiBm
b250LCBjb25zdCBUZXh0UnVuJiBydW4pCiAgICAgOiBIYXJmQnV6elNoYXBlckJhc2UoZm9udCwg
cnVuKQorICAgICwgbV9mcm9tSW5kZXgoMCkKKyAgICAsIG1fdG9JbmRleChtX3J1bi5sZW5ndGgo
KSkKIHsKICAgICBtX25vcm1hbGl6ZWRCdWZmZXIgPSBhZG9wdEFycmF5UHRyKG5ldyBVQ2hhcltt
X3J1bi5sZW5ndGgoKSArIDFdKTsKICAgICBtX25vcm1hbGl6ZWRCdWZmZXJMZW5ndGggPSBtX3J1
bi5sZW5ndGgoKTsKQEAgLTE3OSw2ICsxODEsMTkgQEAgSGFyZkJ1enpTaGFwZXI6On5IYXJmQnV6
elNoYXBlcigpCiB7CiB9CiAKK3ZvaWQgSGFyZkJ1enpTaGFwZXI6OnNldERyYXdSYW5nZShpbnQg
ZnJvbSwgaW50IHRvKQoreworICAgIEFTU0VSVChmcm9tID49IDApOworICAgIEFTU0VSVCh0byA8
PSBtX3J1bi5sZW5ndGgoKSk7CisgICAgbV9mcm9tSW5kZXggPSBmcm9tOworICAgIG1fdG9JbmRl
eCA9IHRvOworfQorCitib29sIEhhcmZCdXp6U2hhcGVyOjpzaG91bGREcmF3Q2hhcmFjdGVyKGlu
dCBpbmRleCkKK3sKKyAgICByZXR1cm4gaW5kZXggPj0gbV9mcm9tSW5kZXggJiYgaW5kZXggPCBt
X3RvSW5kZXg7Cit9CisKIHZvaWQgSGFyZkJ1enpTaGFwZXI6OnNldEZvbnRGZWF0dXJlcygpCiB7
CiAgICAgRm9udEZlYXR1cmVTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2ZvbnQtPmZvbnREZXNjcmlw
dGlvbigpLmZlYXR1cmVTZXR0aW5ncygpOwpAQCAtMjU0LDYgKzI2OSw5IEBAIGJvb2wgSGFyZkJ1
enpTaGFwZXI6OmNvbGxlY3RIYXJmQnV6elJ1bnMoKQogYm9vbCBIYXJmQnV6elNoYXBlcjo6c2hh
cGVIYXJmQnV6elJ1bnMoR2x5cGhCdWZmZXIqIGdseXBoQnVmZmVyKQogewogICAgIEhhcmZCdXp6
U2NvcGVkUHRyPGhiX2J1ZmZlcl90PiBoYXJmYnV6ekJ1ZmZlcihoYl9idWZmZXJfY3JlYXRlKCks
IGhiX2J1ZmZlcl9kZXN0cm95KTsKKyAgICBmbG9hdCBwZW5kaW5nR2x5cGhBZHZhbmNlWCA9IDA7
CisgICAgZmxvYXQgcGVuZGluZ0dseXBoQWR2YW5jZVkgPSAwOworCiAgICAgaGJfYnVmZmVyX3Nl
dF91bmljb2RlX2Z1bmNzKGhhcmZidXp6QnVmZmVyLmdldCgpLCBoYl9pY3VfZ2V0X3VuaWNvZGVf
ZnVuY3MoKSk7CiAgICAgaWYgKG1fcnVuLmRpcmVjdGlvbmFsT3ZlcnJpZGUoKSkKICAgICAgICAg
aGJfYnVmZmVyX3NldF9kaXJlY3Rpb24oaGFyZmJ1enpCdWZmZXIuZ2V0KCksIG1fcnVuLnJ0bCgp
ID8gSEJfRElSRUNUSU9OX1JUTCA6IEhCX0RJUkVDVElPTl9MVFIpOwpAQCAtMjc5LDcgKzI5Nyw3
IEBAIGJvb2wgSGFyZkJ1enpTaGFwZXI6OnNoYXBlSGFyZkJ1enpSdW5zKEdseXBoQnVmZmVyKiBn
bHlwaEJ1ZmZlcikKICAgICAgICAgaGJfc2hhcGUoaGFyZmJ1enpGb250LmdldCgpLCBoYXJmYnV6
ekJ1ZmZlci5nZXQoKSwgbV9mZWF0dXJlcy5pc0VtcHR5KCkgPyAwIDogbV9mZWF0dXJlcy5kYXRh
KCksIG1fZmVhdHVyZXMuc2l6ZSgpKTsKIAogICAgICAgICBjdXJyZW50UnVuLT5hcHBseVNoYXBl
UmVzdWx0KGhhcmZidXp6QnVmZmVyLmdldCgpKTsKLSAgICAgICAgc2V0R2x5cGhQb3NpdGlvbnNG
b3JIYXJmQnV6elJ1bihjdXJyZW50UnVuLCBpLCBoYXJmYnV6ekJ1ZmZlci5nZXQoKSwgZ2x5cGhC
dWZmZXIpOworICAgICAgICBzZXRHbHlwaFBvc2l0aW9uc0ZvckhhcmZCdXp6UnVuKGN1cnJlbnRS
dW4sIGksIGhhcmZidXp6QnVmZmVyLmdldCgpLCBnbHlwaEJ1ZmZlciwgcGVuZGluZ0dseXBoQWR2
YW5jZVgsIHBlbmRpbmdHbHlwaEFkdmFuY2VZKTsKIAogICAgICAgICBoYl9idWZmZXJfcmVzZXQo
aGFyZmJ1enpCdWZmZXIuZ2V0KCkpOwogICAgICAgICBpZiAobV9ydW4uZGlyZWN0aW9uYWxPdmVy
cmlkZSgpKQpAQCAtMjg4LDcgKzMwNiw3IEBAIGJvb2wgSGFyZkJ1enpTaGFwZXI6OnNoYXBlSGFy
ZkJ1enpSdW5zKEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlcikKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBIYXJmQnV6elNoYXBlcjo6c2V0R2x5cGhQb3NpdGlvbnNGb3JIYXJmQnV6elJ1bihI
YXJmQnV6elJ1biogY3VycmVudFJ1biwgdW5zaWduZWQgcnVuSW5kZXhJblZpc3VhbE9yZGVyLCBo
Yl9idWZmZXJfdCogaGFyZmJ1enpCdWZmZXIsIEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlcikKK3Zv
aWQgSGFyZkJ1enpTaGFwZXI6OnNldEdseXBoUG9zaXRpb25zRm9ySGFyZkJ1enpSdW4oSGFyZkJ1
enpSdW4qIGN1cnJlbnRSdW4sIHVuc2lnbmVkIHJ1bkluZGV4SW5WaXN1YWxPcmRlciwgaGJfYnVm
ZmVyX3QqIGhhcmZidXp6QnVmZmVyLCBHbHlwaEJ1ZmZlciogZ2x5cGhCdWZmZXIsIGZsb2F0JiBw
ZW5kaW5nR2x5cGhBZHZhbmNlWCwgZmxvYXQmIHBlbmRpbmdHbHlwaEFkdmFuY2VZKQogewogICAg
IGNvbnN0IFNpbXBsZUZvbnREYXRhKiBjdXJyZW50Rm9udERhdGEgPSBjdXJyZW50UnVuLT5mb250
RGF0YSgpOwogICAgIGhiX2dseXBoX2luZm9fdCogZ2x5cGhJbmZvcyA9IGhiX2J1ZmZlcl9nZXRf
Z2x5cGhfaW5mb3MoaGFyZmJ1enpCdWZmZXIsIDApOwpAQCAtMzE3LDcgKzMzNSw3IEBAIHZvaWQg
SGFyZkJ1enpTaGFwZXI6OnNldEdseXBoUG9zaXRpb25zRm9ySGFyZkJ1enpSdW4oSGFyZkJ1enpS
dW4qIGN1cnJlbnRSdW4sIHVuCiAKICAgICAgICAgaWYgKGN1cnJlbnRGb250RGF0YS0+aXNaZXJv
V2lkdGhTcGFjZUdseXBoKGdseXBoKSkgewogICAgICAgICAgICAgY3VycmVudFJ1bi0+c2V0R2x5
cGhBbmRBZHZhbmNlKGksIGdseXBoLCAwKTsKLSAgICAgICAgICAgIGlmIChnbHlwaEJ1ZmZlcikK
KyAgICAgICAgICAgIGlmIChnbHlwaEJ1ZmZlciAmJiBzaG91bGREcmF3Q2hhcmFjdGVyKGN1cnJl
bnRDaGFyYWN0ZXJJbmRleCkpCiAgICAgICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChnbHlw
aCwgY3VycmVudEZvbnREYXRhLCBjcmVhdGVHbHlwaEJ1ZmZlckFkdmFuY2UoMCwgMCkpOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTMzMCw3ICszNDgsMTYgQEAgdm9pZCBI
YXJmQnV6elNoYXBlcjo6c2V0R2x5cGhQb3NpdGlvbnNGb3JIYXJmQnV6elJ1bihIYXJmQnV6elJ1
biogY3VycmVudFJ1biwgdW4KICAgICAgICAgICAgICAgICBtX3N0YXJ0T2Zmc2V0LnNldChvZmZz
ZXRYLCBvZmZzZXRZKTsKICAgICAgICAgICAgIGZsb2F0IGdseXBoQWR2YW5jZVggPSBhZHZhbmNl
ICsgbmV4dE9mZnNldFggLSBvZmZzZXRYOwogICAgICAgICAgICAgZmxvYXQgZ2x5cGhBZHZhbmNl
WSA9IG5leHRPZmZzZXRZIC0gb2Zmc2V0WTsKLSAgICAgICAgICAgIGdseXBoQnVmZmVyLT5hZGQo
Z2x5cGgsIGN1cnJlbnRGb250RGF0YSwgY3JlYXRlR2x5cGhCdWZmZXJBZHZhbmNlKGdseXBoQWR2
YW5jZVgsIGdseXBoQWR2YW5jZVkpKTsKKyAgICAgICAgICAgIGlmIChzaG91bGREcmF3Q2hhcmFj
dGVyKGN1cnJlbnRDaGFyYWN0ZXJJbmRleCkpIHsKKyAgICAgICAgICAgICAgICBnbHlwaEFkdmFu
Y2VYICs9IHBlbmRpbmdHbHlwaEFkdmFuY2VYOworICAgICAgICAgICAgICAgIGdseXBoQWR2YW5j
ZVkgKz0gcGVuZGluZ0dseXBoQWR2YW5jZVk7CisgICAgICAgICAgICAgICAgcGVuZGluZ0dseXBo
QWR2YW5jZVggPSAwOworICAgICAgICAgICAgICAgIHBlbmRpbmdHbHlwaEFkdmFuY2VZID0gMDsK
KyAgICAgICAgICAgICAgICBnbHlwaEJ1ZmZlci0+YWRkKGdseXBoLCBjdXJyZW50Rm9udERhdGEs
IGNyZWF0ZUdseXBoQnVmZmVyQWR2YW5jZShnbHlwaEFkdmFuY2VYLCBnbHlwaEFkdmFuY2VZKSk7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBlbmRpbmdHbHlwaEFkdmFu
Y2VYICs9IGdseXBoQWR2YW5jZVg7CisgICAgICAgICAgICAgICAgcGVuZGluZ0dseXBoQWR2YW5j
ZVkgKz0gZ2x5cGhBZHZhbmNlWTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAg
IHRvdGFsQWR2YW5jZSArPSBhZHZhbmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1enpTaGFwZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L25nL0hhcmZCdXp6U2hhcGVyLmgKaW5kZXgg
ZWIzOTM1ZGIxNDczMTVhODNhNWM5YWY2ODRmYWVhMGJkOGI5ZGMxMC4uMTE0MWQ0MmZjZGEzYjAz
MDlmMDE3MTNkMDI4MDVhZDcyZDZmNGQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1enpTaGFwZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9uZy9IYXJmQnV6elNoYXBlci5oCkBA
IC01MSw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICBIYXJmQnV6elNoYXBlcihjb25zdCBGb250Kiwg
Y29uc3QgVGV4dFJ1biYpOwogICAgIHZpcnR1YWwgfkhhcmZCdXp6U2hhcGVyKCk7CiAKKyAgICB2
b2lkIHNldERyYXdSYW5nZShpbnQgZnJvbSwgaW50IHRvKTsKICAgICBib29sIHNoYXBlKEdseXBo
QnVmZmVyKiA9IDApOwogICAgIEZsb2F0UG9pbnQgYWRqdXN0U3RhcnRQb2ludChjb25zdCBGbG9h
dFBvaW50Jik7CiAgICAgZmxvYXQgdG90YWxXaWR0aCgpIHsgcmV0dXJuIG1fdG90YWxXaWR0aDsg
fQpAQCAtOTYsMTEgKzk3LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIGZsb2F0IG1fd2lkdGg7CiAg
ICAgfTsKIAorICAgIGJvb2wgc2hvdWxkRHJhd0NoYXJhY3RlcihpbnQgaW5kZXgpOwogICAgIHZv
aWQgc2V0Rm9udEZlYXR1cmVzKCk7CiAKICAgICBib29sIGNvbGxlY3RIYXJmQnV6elJ1bnMoKTsK
ICAgICBib29sIHNoYXBlSGFyZkJ1enpSdW5zKEdseXBoQnVmZmVyKik7Ci0gICAgdm9pZCBzZXRH
bHlwaFBvc2l0aW9uc0ZvckhhcmZCdXp6UnVuKEhhcmZCdXp6UnVuKiwgdW5zaWduZWQgcnVuSW5k
ZXhJblZpc3VhbE9yZGVyLCBoYl9idWZmZXJfdCosIEdseXBoQnVmZmVyKik7CisgICAgdm9pZCBz
ZXRHbHlwaFBvc2l0aW9uc0ZvckhhcmZCdXp6UnVuKEhhcmZCdXp6UnVuKiwgdW5zaWduZWQgcnVu
SW5kZXhJblZpc3VhbE9yZGVyLCBoYl9idWZmZXJfdCosIEdseXBoQnVmZmVyKiwgZmxvYXQmIHBl
bmRpbmdHbHlwaEFkdmFuY2VYLCBmbG9hdCYgcGVuZGluZ0dseXBoQWR2YW5jZVkpOwogCiAgICAg
R2x5cGhCdWZmZXJBZHZhbmNlIGNyZWF0ZUdseXBoQnVmZmVyQWR2YW5jZShmbG9hdCwgZmxvYXQp
OwogCkBAIC0xMDksNiArMTExLDkgQEAgcHJpdmF0ZToKIAogICAgIEZsb2F0UG9pbnQgbV9zdGFy
dE9mZnNldDsKIAorICAgIGludCBtX2Zyb21JbmRleDsKKyAgICBpbnQgbV90b0luZGV4OworCiAg
ICAgZmxvYXQgbV90b3RhbFdpZHRoOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcAppbmRleCBh
NzI2ZGMzNGMyZmFlMmRmNWZiNmUzYjRkMjZhZTExMjE0NWUzYjEyLi4xM2M4OGJiZGNkNzM1ZWY0
YjYwNTdlMGU1MmQ4NTUwOTg2OTliMzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcApAQCAtMTA1
LDYgKzEwNSw3IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGCiAgICAgaWYgKHByZWZlckhhcmZC
dXp6KHRoaXMpKSB7CiAgICAgICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwogICAgICAgICBI
YXJmQnV6elNoYXBlciBzaGFwZXIodGhpcywgcnVuKTsKKyAgICAgICAgc2hhcGVyLnNldERyYXdS
YW5nZShmcm9tLCB0byk7CiAgICAgICAgIGlmIChzaGFwZXIuc2hhcGUoJmdseXBoQnVmZmVyKSkg
ewogICAgICAgICAgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIHJ1biwgZ2x5cGhCdWZmZXIs
IHBvaW50KTsKICAgICAgICAgICAgIHJldHVybjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155187</attachid>
            <date>2012-07-29 16:55:45 -0700</date>
            <delta_ts>2012-07-29 18:47:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-92445-20120730085530.patch</filename>
            <type>text/plain</type>
            <size>9234</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzOTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWVkYzVmM2MzZjM3YzU5
MjJlMWI0NTZiY2RiZjE3MThkMWJjODhjMi4uOGI5Y2EzOTU2OWI0NGE5YjllZWMzMWQyY2RjNDY1
ZjIzOGNmY2VhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA3LTI5ICBLZW5p
Y2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1d
IEhhcmZCdXp6U2hhcGVyIGNhbid0IGhhbmRsZSBzZWdtZW50ZWQgdGV4dCBydW4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNDQ1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICBQYXNzIHRoZSByYW5nZSB0byBiZSBk
aXNwbGF5ZWQgdG8gSGFyZkJ1enpTaGFwZXIuIFRoZSBzaGFwZXIgY2FsY3VsYXRlcyBwb3NpdGlv
bnMgYW5kIGFkdmFuY2VzIG9mIGVhY2ggZ2x5cGgKKyAgICAgICAgcmVnYXJkbGVzcyBvZiB0aGUg
cmFuZ2UsIGJ1dCBvbmx5IGFkZCBnbHlwaHMgd2hpY2ggYXJlIGluIHRoZSByYW5nZS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMuIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvdGV4dC9pbnRl
cm5hdGlvbmFsL2RyYXctY29tcGxleC10ZXh0LWZyb20tdG8uaHRtbCBzaG91bGQKKyAgICAgICAg
d29yayBhcyBleHBlY3RlZCBvbmNlIHdlIG1vdmUgdG8gdXNlIGhhcmZidXp6LW5nIG9uIGxpbnV4
LiBOb3RlIHRoYXQgdGhlIGN1cnJlbnQgZXhwZWN0YXRpb24gd2lsbCBuZWVkIHRvIGJlIHJlYmFz
ZWxpbmVkCisgICAgICAgIGJlY2F1c2UgdGhlIG9sZCBoYiBzaGFwZXIgKENvbXBsZXhUZXh0Q29u
dHJvbGxlcikgbWlzaGFuZGxlcyB0aGUgcmFuZ2UuIHx0b3wgc2hvdWxkIGJlIGV4Y2x1c2l2ZS4g
SSdsbCByZWJhc2VsaW5lCisgICAgICAgIHRoZSBleHBlY3RhdGlvbiBsYXRlci4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRIYXJmQnV6ei5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRleHQpOiBDYWxsIHNoYXBlci5zZXREcmF3UmFu
Z2UoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9uZy9IYXJmQnV6elNo
YXBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIYXJmQnV6elNoYXBlcjo6SGFyZkJ1enpTaGFw
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SGFyZkJ1enpTaGFwZXI6OnNldERyYXdSYW5nZSk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIYXJmQnV6elNoYXBl
cjo6c2hvdWxkRHJhd0NoYXJhY3RlckF0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIYXJm
QnV6elNoYXBlcjo6c2hhcGVIYXJmQnV6elJ1bnMpOiBBZGRlZCB2YXJpYWJsZXMgdGhhdCBob2xk
IHBlbmRpbmcgYWR2YW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpIYXJmQnV6elNoYXBlcjo6c2V0
R2x5cGhQb3NpdGlvbnNGb3JIYXJmQnV6elJ1bik6IEFkZCBvbmx5IGdseXBocyB3aGljaCBhcmUg
aW4gdGhlIGdpdmVuIHJhbmdlIHRvIGdseXBoQnVmZmVyLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2hhcmZidXp6L25nL0hhcmZCdXp6U2hhcGVyLmg6CisgICAgICAgIChIYXJmQnV6elNo
YXBlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1h
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRleHQpOiBDYWxsIHNo
YXBlci5zZXREcmF3UmFuZ2UoKS4KKwogMjAxMi0wNy0yOSAgUmlrIENhYmFuaWVyICA8Y2FiYW5p
ZXJAYWRvYmUuY29tPgogCiAgICAgICAgIEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcgZmxhZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9udEhh
cmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0Zv
bnRIYXJmQnV6ei5jcHAKaW5kZXggMTlhMGI5YTZkNWE3MTQyZDgyODE3MWMxODkzYjFlYjY0M2Q1
Y2FhOC4uOTdhZGQ2MjI1YTI2M2YzYTgyOGRiYjk5MjRmMjYzZjcwODY5YzI2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9udEhhcmZCdXp6
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250
SGFyZkJ1enouY3BwCkBAIC0xODUsNiArMTg1LDcgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRl
eHQoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgVGV4dFJ1biYgcnVuLAogI2lmIFVTRShIQVJG
QlVaWl9ORykKICAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKICAgICBIYXJmQnV6elNoYXBl
ciBzaGFwZXIodGhpcywgcnVuKTsKKyAgICBzaGFwZXIuc2V0RHJhd1JhbmdlKGZyb20sIHRvKTsK
ICAgICBpZiAoIXNoYXBlci5zaGFwZSgmZ2x5cGhCdWZmZXIpKQogICAgICAgICByZXR1cm47CiAg
ICAgRmxvYXRQb2ludCBhZGp1c3RlZFBvaW50ID0gc2hhcGVyLmFkanVzdFN0YXJ0UG9pbnQocG9p
bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1
enovbmcvSGFyZkJ1enpTaGFwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFyZmJ1enovbmcvSGFyZkJ1enpTaGFwZXIuY3BwCmluZGV4IGVhZjMwOTlmZDI4ZjM3OGNi
ZWFlNGI0ZjZlMTI0ZDg4NzQ3NTE0MDguLjE3YWQyYjY5YjcxY2U4ODBjYzNhZmFiNGI0MGZiMzZm
MTMxZTc5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hh
cmZidXp6L25nL0hhcmZCdXp6U2hhcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9oYXJmYnV6ei9uZy9IYXJmQnV6elNoYXBlci5jcHAKQEAgLTE2Nyw2ICsxNjcs
OCBAQCBzdGF0aWMgdm9pZCBub3JtYWxpemVDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBzb3VyY2Us
IFVDaGFyKiBkZXN0aW5hdGlvbiwgaW50IGxlbgogCiBIYXJmQnV6elNoYXBlcjo6SGFyZkJ1enpT
aGFwZXIoY29uc3QgRm9udCogZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuKQogICAgIDogSGFyZkJ1
enpTaGFwZXJCYXNlKGZvbnQsIHJ1bikKKyAgICAsIG1fZnJvbUluZGV4KDApCisgICAgLCBtX3Rv
SW5kZXgobV9ydW4ubGVuZ3RoKCkpCiB7CiAgICAgbV9ub3JtYWxpemVkQnVmZmVyID0gYWRvcHRB
cnJheVB0cihuZXcgVUNoYXJbbV9ydW4ubGVuZ3RoKCkgKyAxXSk7CiAgICAgbV9ub3JtYWxpemVk
QnVmZmVyTGVuZ3RoID0gbV9ydW4ubGVuZ3RoKCk7CkBAIC0xNzksNiArMTgxLDE5IEBAIEhhcmZC
dXp6U2hhcGVyOjp+SGFyZkJ1enpTaGFwZXIoKQogewogfQogCit2b2lkIEhhcmZCdXp6U2hhcGVy
OjpzZXREcmF3UmFuZ2UoaW50IGZyb20sIGludCB0bykKK3sKKyAgICBBU1NFUlQoZnJvbSA+PSAw
KTsKKyAgICBBU1NFUlQodG8gPD0gbV9ydW4ubGVuZ3RoKCkpOworICAgIG1fZnJvbUluZGV4ID0g
ZnJvbTsKKyAgICBtX3RvSW5kZXggPSB0bzsKK30KKworYm9vbCBIYXJmQnV6elNoYXBlcjo6c2hv
dWxkRHJhd0NoYXJhY3RlckF0KGludCBpbmRleCkKK3sKKyAgICByZXR1cm4gbV9mcm9tSW5kZXgg
PD0gaW5kZXggJiYgaW5kZXggPCBtX3RvSW5kZXg7Cit9CisKIHZvaWQgSGFyZkJ1enpTaGFwZXI6
OnNldEZvbnRGZWF0dXJlcygpCiB7CiAgICAgRm9udEZlYXR1cmVTZXR0aW5ncyogc2V0dGluZ3Mg
PSBtX2ZvbnQtPmZvbnREZXNjcmlwdGlvbigpLmZlYXR1cmVTZXR0aW5ncygpOwpAQCAtMjU0LDYg
KzI2OSw5IEBAIGJvb2wgSGFyZkJ1enpTaGFwZXI6OmNvbGxlY3RIYXJmQnV6elJ1bnMoKQogYm9v
bCBIYXJmQnV6elNoYXBlcjo6c2hhcGVIYXJmQnV6elJ1bnMoR2x5cGhCdWZmZXIqIGdseXBoQnVm
ZmVyKQogewogICAgIEhhcmZCdXp6U2NvcGVkUHRyPGhiX2J1ZmZlcl90PiBoYXJmYnV6ekJ1ZmZl
cihoYl9idWZmZXJfY3JlYXRlKCksIGhiX2J1ZmZlcl9kZXN0cm95KTsKKyAgICBmbG9hdCBwZW5k
aW5nR2x5cGhBZHZhbmNlWCA9IDA7CisgICAgZmxvYXQgcGVuZGluZ0dseXBoQWR2YW5jZVkgPSAw
OworCiAgICAgaGJfYnVmZmVyX3NldF91bmljb2RlX2Z1bmNzKGhhcmZidXp6QnVmZmVyLmdldCgp
LCBoYl9pY3VfZ2V0X3VuaWNvZGVfZnVuY3MoKSk7CiAgICAgaWYgKG1fcnVuLmRpcmVjdGlvbmFs
T3ZlcnJpZGUoKSkKICAgICAgICAgaGJfYnVmZmVyX3NldF9kaXJlY3Rpb24oaGFyZmJ1enpCdWZm
ZXIuZ2V0KCksIG1fcnVuLnJ0bCgpID8gSEJfRElSRUNUSU9OX1JUTCA6IEhCX0RJUkVDVElPTl9M
VFIpOwpAQCAtMjc5LDcgKzI5Nyw3IEBAIGJvb2wgSGFyZkJ1enpTaGFwZXI6OnNoYXBlSGFyZkJ1
enpSdW5zKEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlcikKICAgICAgICAgaGJfc2hhcGUoaGFyZmJ1
enpGb250LmdldCgpLCBoYXJmYnV6ekJ1ZmZlci5nZXQoKSwgbV9mZWF0dXJlcy5pc0VtcHR5KCkg
PyAwIDogbV9mZWF0dXJlcy5kYXRhKCksIG1fZmVhdHVyZXMuc2l6ZSgpKTsKIAogICAgICAgICBj
dXJyZW50UnVuLT5hcHBseVNoYXBlUmVzdWx0KGhhcmZidXp6QnVmZmVyLmdldCgpKTsKLSAgICAg
ICAgc2V0R2x5cGhQb3NpdGlvbnNGb3JIYXJmQnV6elJ1bihjdXJyZW50UnVuLCBpLCBoYXJmYnV6
ekJ1ZmZlci5nZXQoKSwgZ2x5cGhCdWZmZXIpOworICAgICAgICBzZXRHbHlwaFBvc2l0aW9uc0Zv
ckhhcmZCdXp6UnVuKGN1cnJlbnRSdW4sIGksIGhhcmZidXp6QnVmZmVyLmdldCgpLCBnbHlwaEJ1
ZmZlciwgcGVuZGluZ0dseXBoQWR2YW5jZVgsIHBlbmRpbmdHbHlwaEFkdmFuY2VZKTsKIAogICAg
ICAgICBoYl9idWZmZXJfcmVzZXQoaGFyZmJ1enpCdWZmZXIuZ2V0KCkpOwogICAgICAgICBpZiAo
bV9ydW4uZGlyZWN0aW9uYWxPdmVycmlkZSgpKQpAQCAtMjg4LDcgKzMwNiw3IEBAIGJvb2wgSGFy
ZkJ1enpTaGFwZXI6OnNoYXBlSGFyZkJ1enpSdW5zKEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlcikK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIYXJmQnV6elNoYXBlcjo6c2V0R2x5cGhQb3Np
dGlvbnNGb3JIYXJmQnV6elJ1bihIYXJmQnV6elJ1biogY3VycmVudFJ1biwgdW5zaWduZWQgcnVu
SW5kZXhJblZpc3VhbE9yZGVyLCBoYl9idWZmZXJfdCogaGFyZmJ1enpCdWZmZXIsIEdseXBoQnVm
ZmVyKiBnbHlwaEJ1ZmZlcikKK3ZvaWQgSGFyZkJ1enpTaGFwZXI6OnNldEdseXBoUG9zaXRpb25z
Rm9ySGFyZkJ1enpSdW4oSGFyZkJ1enpSdW4qIGN1cnJlbnRSdW4sIHVuc2lnbmVkIHJ1bkluZGV4
SW5WaXN1YWxPcmRlciwgaGJfYnVmZmVyX3QqIGhhcmZidXp6QnVmZmVyLCBHbHlwaEJ1ZmZlciog
Z2x5cGhCdWZmZXIsIGZsb2F0JiBwZW5kaW5nR2x5cGhBZHZhbmNlWCwgZmxvYXQmIHBlbmRpbmdH
bHlwaEFkdmFuY2VZKQogewogICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBjdXJyZW50Rm9udERh
dGEgPSBjdXJyZW50UnVuLT5mb250RGF0YSgpOwogICAgIGhiX2dseXBoX2luZm9fdCogZ2x5cGhJ
bmZvcyA9IGhiX2J1ZmZlcl9nZXRfZ2x5cGhfaW5mb3MoaGFyZmJ1enpCdWZmZXIsIDApOwpAQCAt
MzE3LDcgKzMzNSw3IEBAIHZvaWQgSGFyZkJ1enpTaGFwZXI6OnNldEdseXBoUG9zaXRpb25zRm9y
SGFyZkJ1enpSdW4oSGFyZkJ1enpSdW4qIGN1cnJlbnRSdW4sIHVuCiAKICAgICAgICAgaWYgKGN1
cnJlbnRGb250RGF0YS0+aXNaZXJvV2lkdGhTcGFjZUdseXBoKGdseXBoKSkgewogICAgICAgICAg
ICAgY3VycmVudFJ1bi0+c2V0R2x5cGhBbmRBZHZhbmNlKGksIGdseXBoLCAwKTsKLSAgICAgICAg
ICAgIGlmIChnbHlwaEJ1ZmZlcikKKyAgICAgICAgICAgIGlmIChnbHlwaEJ1ZmZlciAmJiBzaG91
bGREcmF3Q2hhcmFjdGVyQXQoY3VycmVudENoYXJhY3RlckluZGV4KSkKICAgICAgICAgICAgICAg
ICBnbHlwaEJ1ZmZlci0+YWRkKGdseXBoLCBjdXJyZW50Rm9udERhdGEsIGNyZWF0ZUdseXBoQnVm
ZmVyQWR2YW5jZSgwLCAwKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAt
MzMwLDcgKzM0OCwxNiBAQCB2b2lkIEhhcmZCdXp6U2hhcGVyOjpzZXRHbHlwaFBvc2l0aW9uc0Zv
ckhhcmZCdXp6UnVuKEhhcmZCdXp6UnVuKiBjdXJyZW50UnVuLCB1bgogICAgICAgICAgICAgICAg
IG1fc3RhcnRPZmZzZXQuc2V0KG9mZnNldFgsIG9mZnNldFkpOwogICAgICAgICAgICAgZmxvYXQg
Z2x5cGhBZHZhbmNlWCA9IGFkdmFuY2UgKyBuZXh0T2Zmc2V0WCAtIG9mZnNldFg7CiAgICAgICAg
ICAgICBmbG9hdCBnbHlwaEFkdmFuY2VZID0gbmV4dE9mZnNldFkgLSBvZmZzZXRZOwotICAgICAg
ICAgICAgZ2x5cGhCdWZmZXItPmFkZChnbHlwaCwgY3VycmVudEZvbnREYXRhLCBjcmVhdGVHbHlw
aEJ1ZmZlckFkdmFuY2UoZ2x5cGhBZHZhbmNlWCwgZ2x5cGhBZHZhbmNlWSkpOworICAgICAgICAg
ICAgaWYgKHNob3VsZERyYXdDaGFyYWN0ZXJBdChjdXJyZW50Q2hhcmFjdGVySW5kZXgpKSB7Cisg
ICAgICAgICAgICAgICAgZ2x5cGhBZHZhbmNlWCArPSBwZW5kaW5nR2x5cGhBZHZhbmNlWDsKKyAg
ICAgICAgICAgICAgICBnbHlwaEFkdmFuY2VZICs9IHBlbmRpbmdHbHlwaEFkdmFuY2VZOworICAg
ICAgICAgICAgICAgIHBlbmRpbmdHbHlwaEFkdmFuY2VYID0gMDsKKyAgICAgICAgICAgICAgICBw
ZW5kaW5nR2x5cGhBZHZhbmNlWSA9IDA7CisgICAgICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFk
ZChnbHlwaCwgY3VycmVudEZvbnREYXRhLCBjcmVhdGVHbHlwaEJ1ZmZlckFkdmFuY2UoZ2x5cGhB
ZHZhbmNlWCwgZ2x5cGhBZHZhbmNlWSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBwZW5kaW5nR2x5cGhBZHZhbmNlWCArPSBnbHlwaEFkdmFuY2VYOworICAgICAgICAg
ICAgICAgIHBlbmRpbmdHbHlwaEFkdmFuY2VZICs9IGdseXBoQWR2YW5jZVk7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0KIAogICAgICAgICB0b3RhbEFkdmFuY2UgKz0gYWR2YW5jZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L25nL0hhcmZC
dXp6U2hhcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9u
Zy9IYXJmQnV6elNoYXBlci5oCmluZGV4IGViMzkzNWRiMTQ3MzE1YTgzYTVjOWFmNjg0ZmFlYTBi
ZDhiOWRjMTAuLjg3ODQ0Y2M3ZmNkZGVjMDA1ZmUwMDczZmI2YzY4MDliY2IzOTBlMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L25nL0hhcmZC
dXp6U2hhcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1
enovbmcvSGFyZkJ1enpTaGFwZXIuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgSGFy
ZkJ1enpTaGFwZXIoY29uc3QgRm9udCosIGNvbnN0IFRleHRSdW4mKTsKICAgICB2aXJ0dWFsIH5I
YXJmQnV6elNoYXBlcigpOwogCisgICAgdm9pZCBzZXREcmF3UmFuZ2UoaW50IGZyb20sIGludCB0
byk7CiAgICAgYm9vbCBzaGFwZShHbHlwaEJ1ZmZlciogPSAwKTsKICAgICBGbG9hdFBvaW50IGFk
anVzdFN0YXJ0UG9pbnQoY29uc3QgRmxvYXRQb2ludCYpOwogICAgIGZsb2F0IHRvdGFsV2lkdGgo
KSB7IHJldHVybiBtX3RvdGFsV2lkdGg7IH0KQEAgLTk2LDExICs5NywxMiBAQCBwcml2YXRlOgog
ICAgICAgICBmbG9hdCBtX3dpZHRoOwogICAgIH07CiAKKyAgICBib29sIHNob3VsZERyYXdDaGFy
YWN0ZXJBdChpbnQgaW5kZXgpOwogICAgIHZvaWQgc2V0Rm9udEZlYXR1cmVzKCk7CiAKICAgICBi
b29sIGNvbGxlY3RIYXJmQnV6elJ1bnMoKTsKICAgICBib29sIHNoYXBlSGFyZkJ1enpSdW5zKEds
eXBoQnVmZmVyKik7Ci0gICAgdm9pZCBzZXRHbHlwaFBvc2l0aW9uc0ZvckhhcmZCdXp6UnVuKEhh
cmZCdXp6UnVuKiwgdW5zaWduZWQgcnVuSW5kZXhJblZpc3VhbE9yZGVyLCBoYl9idWZmZXJfdCos
IEdseXBoQnVmZmVyKik7CisgICAgdm9pZCBzZXRHbHlwaFBvc2l0aW9uc0ZvckhhcmZCdXp6UnVu
KEhhcmZCdXp6UnVuKiwgdW5zaWduZWQgcnVuSW5kZXhJblZpc3VhbE9yZGVyLCBoYl9idWZmZXJf
dCosIEdseXBoQnVmZmVyKiwgZmxvYXQmIHBlbmRpbmdHbHlwaEFkdmFuY2VYLCBmbG9hdCYgcGVu
ZGluZ0dseXBoQWR2YW5jZVkpOwogCiAgICAgR2x5cGhCdWZmZXJBZHZhbmNlIGNyZWF0ZUdseXBo
QnVmZmVyQWR2YW5jZShmbG9hdCwgZmxvYXQpOwogCkBAIC0xMDksNiArMTExLDkgQEAgcHJpdmF0
ZToKIAogICAgIEZsb2F0UG9pbnQgbV9zdGFydE9mZnNldDsKIAorICAgIGludCBtX2Zyb21JbmRl
eDsKKyAgICBpbnQgbV90b0luZGV4OworCiAgICAgZmxvYXQgbV90b3RhbFdpZHRoOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21w
bGV4VGV4dE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dENvbXBsZXhUZXh0TWFjLmNwcAppbmRleCBhNzI2ZGMzNGMyZmFlMmRmNWZiNmUzYjRkMjZhZTEx
MjE0NWUzYjEyLi4xM2M4OGJiZGNkNzM1ZWY0YjYwNTdlMGU1MmQ4NTUwOTg2OTliMzQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhU
ZXh0TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dENvbXBsZXhUZXh0TWFjLmNwcApAQCAtMTA1LDYgKzEwNSw3IEBAIHZvaWQgRm9udDo6ZHJhd0Nv
bXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBj
b25zdCBGCiAgICAgaWYgKHByZWZlckhhcmZCdXp6KHRoaXMpKSB7CiAgICAgICAgIEdseXBoQnVm
ZmVyIGdseXBoQnVmZmVyOwogICAgICAgICBIYXJmQnV6elNoYXBlciBzaGFwZXIodGhpcywgcnVu
KTsKKyAgICAgICAgc2hhcGVyLnNldERyYXdSYW5nZShmcm9tLCB0byk7CiAgICAgICAgIGlmIChz
aGFwZXIuc2hhcGUoJmdseXBoQnVmZmVyKSkgewogICAgICAgICAgICAgZHJhd0dseXBoQnVmZmVy
KGNvbnRleHQsIHJ1biwgZ2x5cGhCdWZmZXIsIHBvaW50KTsKICAgICAgICAgICAgIHJldHVybjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>