<?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>97676</bug_id>
          
          <creation_ts>2012-09-26 06:37:57 -0700</creation_ts>
          <short_desc>[Chromium] FontHarfBuzz.cpp should not use drawTextOnPath()</short_desc>
          <delta_ts>2013-04-15 08:47:34 -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>
          <dependson>97682</dependson>
    
    <dependson>97837</dependson>
          <blocked>62841</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenichi Ishibashi">bashi</reporter>
          <assigned_to name="Kenichi Ishibashi">bashi</assigned_to>
          <cc>abarth</cc>
    
    <cc>agl</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ojan</cc>
    
    <cc>schenney</cc>
    
    <cc>senorblanco</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>728488</commentid>
    <comment_count>0</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-26 06:37:57 -0700</bug_when>
    <thetext>FontHarfBuzz uses drawTextOnPath() to draw vertical text. According to Skia guys, it&apos;s slow than drawPosText(). We should use drawPosText() + setVerticalText() instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728507</commentid>
    <comment_count>1</comment_count>
      <attachid>165792</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-26 06:58:49 -0700</bug_when>
    <thetext>Created attachment 165792
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729501</commentid>
    <comment_count>2</comment_count>
      <attachid>165993</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-27 07:08:27 -0700</bug_when>
    <thetext>Created attachment 165993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729504</commentid>
    <comment_count>3</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-27 07:12:58 -0700</bug_when>
    <thetext>Hi Tony,

Could you take a look?

Instead using ipafont(c.f. https://bugs.webkit.org/show_bug.cgi?id=97682#c4), I&apos;d like to add a fast path for fonts which have vhea/vmtx table when drawing vertical text.

This patch doesn&apos;t change behavior on LayoutTests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729809</commentid>
    <comment_count>4</comment_count>
      <attachid>165993</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-27 13:26:48 -0700</bug_when>
    <thetext>Comment on attachment 165993
Patch

Attachment 165993 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14001061

New failing tests:
fast/text/international/text-spliced-font.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729820</commentid>
    <comment_count>5</comment_count>
      <attachid>165993</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-27 13:35:20 -0700</bug_when>
    <thetext>Comment on attachment 165993
Patch

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

The EWS bot failure looks real.

&gt; Source/WebCore/platform/graphics/harfbuzz/FontHarfBuzz.cpp:100
&gt; +            canvas-&gt;drawTextOnPath(glyphs + i, 2, path, 0, paint);

Can we use sizeof(GlyphBufferGlyph) instead of hardcoding 2?

&gt; Source/WebCore/platform/graphics/harfbuzz/FontHarfBuzz.cpp:121
&gt; +            canvas-&gt;drawTextOnPath(glyphs + i, 2, path, 0, paint);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729844</commentid>
    <comment_count>6</comment_count>
      <attachid>165993</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-27 14:06:01 -0700</bug_when>
    <thetext>Comment on attachment 165993
Patch

Attachment 165993 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14060007

New failing tests:
fast/text/international/text-spliced-font.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729938</commentid>
    <comment_count>7</comment_count>
      <attachid>166079</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-27 15:42:01 -0700</bug_when>
    <thetext>Created attachment 166079
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729942</commentid>
    <comment_count>8</comment_count>
      <attachid>166082</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-27 15:44:50 -0700</bug_when>
    <thetext>Created attachment 166082
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729948</commentid>
    <comment_count>9</comment_count>
      <attachid>166082</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-27 15:47:48 -0700</bug_when>
    <thetext>Comment on attachment 166082
Patch for landing

Rejecting attachment 166082 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/WebKit/mac/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/14038829</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729950</commentid>
    <comment_count>10</comment_count>
      <attachid>165993</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-27 15:49:58 -0700</bug_when>
    <thetext>Comment on attachment 165993
Patch

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

Thank you for review!

I should have disabled setVerticalText() in drawComplexText() because we don&apos;t support vertical text on complex path now. It&apos;s will be supported after hb-ng transition.

&gt;&gt; Source/WebCore/platform/graphics/harfbuzz/FontHarfBuzz.cpp:100
&gt;&gt; +            canvas-&gt;drawTextOnPath(glyphs + i, 2, path, 0, paint);
&gt; 
&gt; Can we use sizeof(GlyphBufferGlyph) instead of hardcoding 2?

Done.

&gt;&gt; Source/WebCore/platform/graphics/harfbuzz/FontHarfBuzz.cpp:121
&gt;&gt; +            canvas-&gt;drawTextOnPath(glyphs + i, 2, path, 0, paint);
&gt; 
&gt; Ditto.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729955</commentid>
    <comment_count>11</comment_count>
      <attachid>166082</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-27 15:56:06 -0700</bug_when>
    <thetext>Comment on attachment 166082
Patch for landing

Rejecting attachment 166082 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/WebKit/mac/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/14034956</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729967</commentid>
    <comment_count>12</comment_count>
      <attachid>166086</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-27 16:06:20 -0700</bug_when>
    <thetext>Created attachment 166086
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730011</commentid>
    <comment_count>13</comment_count>
      <attachid>166086</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-27 16:51:30 -0700</bug_when>
    <thetext>Comment on attachment 166086
Patch for landing

Rejecting attachment 166086 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/WebKit/mac/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/14066002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730014</commentid>
    <comment_count>14</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-27 16:53:07 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 166086 [details])
&gt; Rejecting attachment 166086 [details] from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1
&gt; 
&gt; ERROR: /mnt/git/webkit-commit-queue/Source/WebKit/mac/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).
&gt; 
&gt; Full output: http://queues.webkit.org/results/14066002

Hmm, we saw the same thing on a different patch.  Maybe a bug in the commit queue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730019</commentid>
    <comment_count>15</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-27 16:59:36 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Hmm, we saw the same thing on a different patch.  Maybe a bug in the commit queue?

That might be.. I&apos;ll land the patch by hand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730023</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-27 17:01:25 -0700</bug_when>
    <thetext>Yes, the bot is having trouble today for some reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730037</commentid>
    <comment_count>17</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-27 17:13:32 -0700</bug_when>
    <thetext>Committed r129823: &lt;http://trac.webkit.org/changeset/129823&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730072</commentid>
    <comment_count>18</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-27 18:04:37 -0700</bug_when>
    <thetext>This patch caused a bunch of image failures on Chromium Linux. They look like they just need rebaselines. Bashi, mind taking a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730076</commentid>
    <comment_count>19</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-27 18:08:58 -0700</bug_when>
    <thetext>Actually, on closer inspection, the new results look bad to me. The glyphs are oddly compressed and small. I&apos;m going to rollout as I haven&apos;t gotten a hold of bashi.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730079</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-27 18:10:46 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 97837</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730135</commentid>
    <comment_count>21</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-27 19:23:26 -0700</bug_when>
    <thetext>I couldn&apos;t reproduce the failures on my linux. I need the fonts which are used by chromium canary bots to investigate the failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730264</commentid>
    <comment_count>22</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-27 23:05:54 -0700</bug_when>
    <thetext>Not sure. Tony or Adam probably know how we deal with fonts on Linux DRT. I&apos;m pretty sure we include a fixed set of fonts. Maybe we just need to add this font to the list. Does it have a license that we can use?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730376</commentid>
    <comment_count>23</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-28 02:12:09 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Not sure. Tony or Adam probably know how we deal with fonts on Linux DRT. I&apos;m pretty sure we include a fixed set of fonts. Maybe we just need to add this font to the list. Does it have a license that we can use?

Sorry, my previous comment wasn&apos;t enough. I believe Linux DRT uses &quot;kochi mincho&quot; and &quot;kochi gothic&quot; for vertical text tests. I&apos;m guessing that kochi mincho font on bots would be different from mine. I need the fonts which are actually used on the bots to investigate the cause.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730772</commentid>
    <comment_count>24</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-28 10:18:26 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; Not sure. Tony or Adam probably know how we deal with fonts on Linux DRT. I&apos;m pretty sure we include a fixed set of fonts. Maybe we just need to add this font to the list. Does it have a license that we can use?
&gt; 
&gt; Sorry, my previous comment wasn&apos;t enough. I believe Linux DRT uses &quot;kochi mincho&quot; and &quot;kochi gothic&quot; for vertical text tests. I&apos;m guessing that kochi mincho font on bots would be different from mine. I need the fonts which are actually used on the bots to investigate the cause.

Are you using Lucid or Precise?  All the bots run Lucid and running install-build-deps.sh should get the right version of the fonts.

Also, I suspect that the failure of fast/text/international/text-spliced-font.html on the EWS bot is real. Ojan, did more than that one test fail?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730774</commentid>
    <comment_count>25</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-28 10:19:24 -0700</bug_when>
    <thetext>(In reply to comment #24)

&gt; Ojan, did more than that one test fail?

Nevermind, I found the list of failing tests on the other bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730776</commentid>
    <comment_count>26</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-28 10:22:33 -0700</bug_when>
    <thetext>It looks like the glyphs are too far to the left and getting cut off:
http://build.chromium.org/f/chromium/layout_test_results/Webkit_Linux/results/layout-test-results/editing/selection/vertical-rl-ltr-extend-line-forward-p-actual.png</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730783</commentid>
    <comment_count>27</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-28 10:32:09 -0700</bug_when>
    <thetext>I checked on the build.chromium.org bots. They have:
ii  ttf-kochi-gothic                     20030809-6                                      Kochi Subst Gothic Japanese TrueType font wi
ii  ttf-kochi-mincho                     20030809-6                                      Kochi Subst Mincho Japanese TrueType font wi

Which is the same as on my machine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731141</commentid>
    <comment_count>28</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-28 19:49:39 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; I checked on the build.chromium.org bots. They have:
&gt; ii  ttf-kochi-gothic                     20030809-6                                      Kochi Subst Gothic Japanese TrueType font wi
&gt; ii  ttf-kochi-mincho                     20030809-6                                      Kochi Subst Mincho Japanese TrueType font wi
&gt; 
&gt; Which is the same as on my machine.

I&apos;m using Lucid and the version of ttf-kochi-{gothic,mincho} is the same. Hmm..
I wonder why the failures appears on chromium canary bots but don&apos;t appear on EWS bots.

How can I get the skia version the bots are using? Skia guys has improved vertical text rendering (e.g.  r5677)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731748</commentid>
    <comment_count>29</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-01 09:35:58 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (In reply to comment #27)
&gt; &gt; I checked on the build.chromium.org bots. They have:
&gt; &gt; ii  ttf-kochi-gothic                     20030809-6                                      Kochi Subst Gothic Japanese TrueType font wi
&gt; &gt; ii  ttf-kochi-mincho                     20030809-6                                      Kochi Subst Mincho Japanese TrueType font wi
&gt; &gt; 
&gt; &gt; Which is the same as on my machine.
&gt; 
&gt; I&apos;m using Lucid and the version of ttf-kochi-{gothic,mincho} is the same. Hmm..
&gt; I wonder why the failures appears on chromium canary bots but don&apos;t appear on EWS bots.
&gt; 
&gt; How can I get the skia version the bots are using? Skia guys has improved vertical text rendering (e.g.  r5677)

You can look at the update step on the bots.  E.g., on http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Linux/builds/31607/steps/update/logs/stdio , the skia revision is in this line:

122&gt;________ running &apos;svn update /mnt/data/b/build/slave/Webkit_Linux/build/src/third_party/skia/gyp --revision 5746 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/data/b/build/slave/Webkit_Linux/build&apos;

The build.chromium.org use a full chromium checkout while the EWS bots use a WebKit only checkout.  Maybe that mattered at the time?  You could try uploading again or landing again to see if things are different now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732239</commentid>
    <comment_count>30</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-10-01 20:53:50 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; You can look at the update step on the bots.  E.g., on http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Linux/builds/31607/steps/update/logs/stdio , the skia revision is in this line:
&gt; 
&gt; 122&gt;________ running &apos;svn update /mnt/data/b/build/slave/Webkit_Linux/build/src/third_party/skia/gyp --revision 5746 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/data/b/build/slave/Webkit_Linux/build&apos;
&gt; 
&gt; The build.chromium.org use a full chromium checkout while the EWS bots use a WebKit only checkout.  Maybe that mattered at the time?  You could try uploading again or landing again to see if things are different now.

Thank you for the information. I used tryserver and confirmed the patch doesn&apos;t pass the vertical text tests. I&apos;m investigating the cause.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165792</attachid>
            <date>2012-09-26 06:58:49 -0700</date>
            <delta_ts>2012-09-27 07:08:24 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-97676-20120926225807.patch</filename>
            <type>text/plain</type>
            <size>5885</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250SGFyZkJ1enouY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9udEhhcmZCdXp6LmNwcAppbmRleCA5N2Fk
ZDYyMjVhMjYzZjNhODI4ZGJiOTkyNGYyNjNmNzA4NjljMjZkLi4wMGI2ZThlZWU2YmQ4NmMwNGVi
NDE4OTFjMjZmMDM3YmQ2NGNlNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9oYXJmYnV6ei9Gb250SGFyZkJ1enouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRIYXJmQnV6ei5jcHAKQEAgLTcxLDggKzcx
LDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IFNp
bXBsZUZvbnREYXRhKiBmb250LAogICAgIFNrQVNTRVJUKHNpemVvZihHbHlwaEJ1ZmZlckdseXBo
KSA9PSBzaXplb2YodWludDE2X3QpKTsgLy8gY29tcGlsZS10aW1lIGFzc2VydAogCiAgICAgY29u
c3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzID0gZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pOwot
ICAgIFNrU2NhbGFyIHggPSBTa0Zsb2F0VG9TY2FsYXIocG9pbnQueCgpKTsKLSAgICBTa1NjYWxh
ciB5ID0gU2tGbG9hdFRvU2NhbGFyKHBvaW50LnkoKSk7CisgICAgYm9vbCBpc1ZlcnRpY2FsID0g
Zm9udC0+cGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbDsKIAogICAgIC8v
IEZJWE1FOiB0ZXh0IHJlbmRlcmluZyBzcGVlZDoKICAgICAvLyBBbmRyb2lkIGhhcyBjb2RlIGlu
IHRoZWlyIFdlYkNvcmUgZm9yayB0byBzcGVjaWFsIGNhc2Ugd2hlbiB0aGUKQEAgLTgxLDI0ICs4
MCwyOCBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3Qg
U2ltcGxlRm9udERhdGEqIGZvbnQsCiAgICAgLy8gcGF0Y2hlcyBtYXkgYmUgdXBzdHJlYW1lZCB0
byBXZWJLaXQgc28gd2UgYWx3YXlzIHVzZSB0aGUgc2xvd2VyIHBhdGgKICAgICAvLyBoZXJlLgog
ICAgIGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSogYWR2ID0gZ2x5cGhCdWZmZXIuYWR2YW5jZXMo
ZnJvbSk7Ci0gICAgU2tBdXRvU1RNYWxsb2M8MzIsIFNrUG9pbnQ+IHN0b3JhZ2UobnVtR2x5cGhz
KSwgc3RvcmFnZTIobnVtR2x5cGhzKSwgc3RvcmFnZTMobnVtR2x5cGhzKTsKKyAgICBTa0F1dG9T
VE1hbGxvYzwzMiwgU2tQb2ludD4gc3RvcmFnZShudW1HbHlwaHMpOwogICAgIFNrUG9pbnQqIHBv
cyA9IHN0b3JhZ2UuZ2V0KCk7Ci0gICAgU2tQb2ludCogdlBvc0JlZ2luID0gc3RvcmFnZTIuZ2V0
KCk7Ci0gICAgU2tQb2ludCogdlBvc0VuZCA9IHN0b3JhZ2UzLmdldCgpOwogCi0gICAgYm9vbCBp
c1ZlcnRpY2FsID0gZm9udC0+cGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNh
bDsKKyAgICBTa0NhbnZhcyogY2FudmFzID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMo
KTsKKyAgICBTa1NjYWxhciB4ID0gU2tGbG9hdFRvU2NhbGFyKHBvaW50LngoKSk7CisgICAgU2tT
Y2FsYXIgeSA9IFNrRmxvYXRUb1NjYWxhcihwb2ludC55KCkpOworICAgIGlmIChmb250LT5wbGF0
Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsKQorICAgICAgICB5ICs9IFNrRmxv
YXRUb1NjYWxhcihmb250LT5mb250TWV0cmljcygpLmZsb2F0QXNjZW50KElkZW9ncmFwaGljQmFz
ZWxpbmUpIC0gZm9udC0+Zm9udE1ldHJpY3MoKS5mbG9hdEFzY2VudCgpKTsKICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IG51bUdseXBoczsgaSsrKSB7Ci0gICAgICAgIFNrU2NhbGFyIG15V2lkdGgg
PSBTa0Zsb2F0VG9TY2FsYXIoYWR2W2ldLndpZHRoKCkpOwogICAgICAgICBwb3NbaV0uc2V0KHgs
IHkpOwotICAgICAgICBpZiAoaXNWZXJ0aWNhbCkgewotICAgICAgICAgICAgdlBvc0JlZ2luW2ld
LnNldCh4ICsgbXlXaWR0aCwgeSk7Ci0gICAgICAgICAgICB2UG9zRW5kW2ldLnNldCh4ICsgbXlX
aWR0aCwgeSAtIG15V2lkdGgpOwotICAgICAgICB9Ci0gICAgICAgIHggKz0gbXlXaWR0aDsKKyAg
ICAgICAgeCArPSBTa0Zsb2F0VG9TY2FsYXIoYWR2W2ldLndpZHRoKCkpOwogICAgICAgICB5ICs9
IFNrRmxvYXRUb1NjYWxhcihhZHZbaV0uaGVpZ2h0KCkpOwogICAgIH0KKyAgICBpZiAoaXNWZXJ0
aWNhbCkgeworICAgICAgICBjYW52YXMtPnNhdmUoKTsKKyAgICAgICAgY2FudmFzLT5yb3RhdGUo
LTkwKTsKKyAgICAgICAgU2tNYXRyaXggcm90YXRvcjsKKyAgICAgICAgcm90YXRvci5yZXNldCgp
OworICAgICAgICByb3RhdG9yLnNldFJvdGF0ZSg5MCk7CisgICAgICAgIHJvdGF0b3IubWFwUG9p
bnRzKHBvcywgbnVtR2x5cGhzKTsKKyAgICB9CiAKLSAgICBTa0NhbnZhcyogY2FudmFzID0gZ2Mt
PnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKICAgICBUZXh0RHJhd2luZ01vZGVGbGFncyB0
ZXh0TW9kZSA9IGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Z2V0VGV4dERyYXdpbmdNb2RlKCk7CiAK
ICAgICAvLyBXZSBkcmF3IHRleHQgdXAgdG8gdHdvIHRpbWVzIChvbmNlIGZvciBmaWxsLCBvbmNl
IGZvciBzdHJva2UpLgpAQCAtMTA5LDE2ICsxMTIsNyBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMo
R3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsCiAgICAgICAg
IGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+YWRqdXN0VGV4dFJlbmRlck1vZGUoJnBhaW50KTsKICAg
ICAgICAgcGFpbnQuc2V0VGV4dEVuY29kaW5nKFNrUGFpbnQ6OmtHbHlwaElEX1RleHRFbmNvZGlu
Zyk7CiAKLSAgICAgICAgaWYgKGlzVmVydGljYWwpIHsKLSAgICAgICAgICAgIFNrUGF0aCBwYXRo
OwotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1HbHlwaHM7ICsraSkgewotICAg
ICAgICAgICAgICAgIHBhdGgucmVzZXQoKTsKLSAgICAgICAgICAgICAgICBwYXRoLm1vdmVUbyh2
UG9zQmVnaW5baV0pOwotICAgICAgICAgICAgICAgIHBhdGgubGluZVRvKHZQb3NFbmRbaV0pOwot
ICAgICAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1RleHRPblBhdGgoZ2x5cGhzICsgaSwgMiwgcGF0
aCwgMCwgcGFpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IGNhbnZhcy0+ZHJhd1Bvc1RleHQoZ2x5cGhzLCBudW1HbHlwaHMgPDwgMSwgcG9zLCBwYWludCk7
CisgICAgICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHQoZ2x5cGhzLCBudW1HbHlwaHMgPDwgMSwgcG9z
LCBwYWludCk7CiAgICAgfQogCiAgICAgaWYgKCh0ZXh0TW9kZSAmIFRleHRNb2RlU3Ryb2tlKQpA
QCAtMTM4LDE3ICsxMzIsMTAgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4
dCogZ2MsIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250LAogICAgICAgICAgICAgcGFpbnQuc2V0
TG9vcGVyKDApOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGlzVmVydGljYWwpIHsKLSAgICAg
ICAgICAgIFNrUGF0aCBwYXRoOwotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1H
bHlwaHM7ICsraSkgewotICAgICAgICAgICAgICAgIHBhdGgucmVzZXQoKTsKLSAgICAgICAgICAg
ICAgICBwYXRoLm1vdmVUbyh2UG9zQmVnaW5baV0pOwotICAgICAgICAgICAgICAgIHBhdGgubGlu
ZVRvKHZQb3NFbmRbaV0pOwotICAgICAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1RleHRPblBhdGgo
Z2x5cGhzICsgaSwgMiwgcGF0aCwgMCwgcGFpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHQoZ2x5cGhzLCBudW1HbHlwaHMg
PDwgMSwgcG9zLCBwYWludCk7CisgICAgICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHQoZ2x5cGhzLCBu
dW1HbHlwaHMgPDwgMSwgcG9zLCBwYWludCk7CiAgICAgfQorICAgIGlmIChpc1ZlcnRpY2FsKQor
ICAgICAgICBjYW52YXMtPnJlc3RvcmUoKTsKIH0KIAogc3RhdGljIHZvaWQgc2V0dXBGb3JUZXh0
UGFpbnRpbmcoU2tQYWludCogcGFpbnQsIFNrQ29sb3IgY29sb3IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250UGxhdGZvcm1EYXRhSGFy
ZkJ1enouY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9u
dFBsYXRmb3JtRGF0YUhhcmZCdXp6LmNwcAppbmRleCAyZDllODZhMzVmNzQ0NmRkN2UwZDBlZTFi
NjU3OWJlYTEzZDhjZjQ1Li5jYmE1ZmI0NWMxZjE0Y2QxZDk4OWFmNjJkNTgwOGE2YzMyMWNkZWU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9G
b250UGxhdGZvcm1EYXRhSGFyZkJ1enouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6ei5jcHAKQEAgLTIzMCw2
ICsyMzAsNyBAQCB2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnNldHVwUGFpbnQoU2tQYWludCogcGFp
bnQpIGNvbnN0CiAgICAgcGFpbnQtPnNldFR5cGVmYWNlKG1fdHlwZWZhY2UpOwogICAgIHBhaW50
LT5zZXRGYWtlQm9sZFRleHQobV9mYWtlQm9sZCk7CiAgICAgcGFpbnQtPnNldFRleHRTa2V3WCht
X2Zha2VJdGFsaWMgPyAtU0tfU2NhbGFyMSAvIDQgOiAwKTsKKyAgICBwYWludC0+c2V0VmVydGlj
YWxUZXh0KG1fb3JpZW50YXRpb24gPT0gVmVydGljYWwpOwogfQogCiBTa0ZvbnRJRCBGb250UGxh
dGZvcm1EYXRhOjp1bmlxdWVJRCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5jcHAKaW5kZXgg
NTQ0ODZjM2FhNGU2OTQ4MzE1ODBhOTIyOTU2NTkwMGVjZjA3YzA4Ny4uNDUzNzVkZGQ3MDg2ZmM2
Y2UwNjYxNWM2ZmNhYjEzZDdlMzI0MjQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9TaW1wbGVGb250RGF0YVNraWEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvU2ltcGxlRm9udERhdGFTa2lhLmNwcApAQCAt
MjA0LDYgKzIwNCw3IEBAIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhj
b25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uCiAKICAgICBtX3BsYXRmb3Jt
RGF0YS5zZXR1cFBhaW50KCZwYWludCk7CiAgICAgcGFpbnQuc2V0VGV4dEVuY29kaW5nKFNrUGFp
bnQ6OmtVVEYxNl9UZXh0RW5jb2RpbmcpOworICAgIHBhaW50LnNldFZlcnRpY2FsVGV4dChmYWxz
ZSk7CiAKICAgICB3aGlsZSAobGVuZ3RoID4gMCkgewogICAgICAgICBpbnQgbiA9IFNrTWluMzIo
bGVuZ3RoLCBTS19BUlJBWV9DT1VOVChnbHlwaHMpKTsKQEAgLTI0Miw2ICsyNDMsOCBAQCBmbG9h
dCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25z
dAogICAgIFNrUGFpbnQgcGFpbnQ7CiAKICAgICBtX3BsYXRmb3JtRGF0YS5zZXR1cFBhaW50KCZw
YWludCk7CisgICAgaWYgKHBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwg
JiYgbV9pc0Jyb2tlbklkZW9ncmFwaEZhbGxiYWNrKQorICAgICAgICBwYWludC5zZXRWZXJ0aWNh
bFRleHQoZmFsc2UpOwogCiAgICAgcGFpbnQuc2V0VGV4dEVuY29kaW5nKFNrUGFpbnQ6OmtHbHlw
aElEX1RleHRFbmNvZGluZyk7CiAgICAgU2tTY2FsYXIgd2lkdGggPSBwYWludC5tZWFzdXJlVGV4
dCgmZ2x5cGgsIDIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165993</attachid>
            <date>2012-09-27 07:08:27 -0700</date>
            <delta_ts>2012-09-27 15:49:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97676-20120927230745.patch</filename>
            <type>text/plain</type>
            <size>9707</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjI5YjJlMmNhMTk0ODhk
YmMxNzgxNzczMzY0OGVhNTBhNDYyZTIxNi4uMDZlZWQ3ODY4MDFhY2RhZGIxNjE3MTc4MjdlZWM2
Y2E4MGY3NWY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA5LTI3ICBLZW5p
Y2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1d
IEZvbnRIYXJmQnV6ei5jcHAgc2hvdWxkIG5vdCB1c2UgZHJhd1RleHRPblBhdGgoKS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3Njc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGRyYXdQb3NUZXh0
KCkgaWYgcG9zc2libGUgZm9yIHZlcnRpY2FsIHRleHQuCisgICAgICAgIFVzZSBkcmF3VGV4dE9u
UGF0aCgpIG9ubHkgaWYgdGhlIGZvbnQgZG9lc24ndCBoYXZlIHZoZWEvdm10eCB0YWJsZS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvciBvbiBMYXlvdXRUZXN0
cy4KKyAgICAgICAgQ29uZmlybWVkIGltcHJvdmVtZW50IGluIHZlcnRpY2FsIHRleHQgcG9zaXRp
b25pbmcgdXNpbmcgaXBhZm9udCBhbmQgU2tpYSByNTY3Ny4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRIYXJmQnV6ei5jcHA6CisgICAgICAgIChXZWJDb3JlOjpk
cmF3VmVydGljYWxUZXh0V2l0aEJyb2tlbklkZW9ncmFwaHMpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0dseXBocyk6IERyYXcgdmVydGlj
YWwgdGV4dCBieSBkcmF3UG9zVGV4dCgpIGluIGEgc2ltaWxhciBtYW5uZXIgb2YgRm9udFNraWEu
Y3BwLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRQbGF0Zm9ybURh
dGFIYXJmQnV6ei5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpzZXR1
cFBhaW50KTogQ2FsbCBzZXRWZXJ0aWFsVGV4dCgpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3NraWEvU2ltcGxlRm9udERhdGFTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgpOiBEaXNhYmxlIHNldFZlcnRpY2FsVGV4
dCgpIGlmIHRoZSBmb250IGRvZXNuJ3QgaGF2ZSB2ZXJ0aWNhbCBtZXRyaWNzLgorCiAyMDEyLTA5
LTI2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bmFtZSBQYWdlOjpmcmFtZUNvdW50KCkgdG8gc3ViZnJhbWVDb3VudCgpLCBhbmQgcmVsYXRlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9u
dEhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0ZvbnRIYXJmQnV6ei5jcHAKaW5kZXggOTdhZGQ2MjI1YTI2M2YzYTgyOGRiYjk5MjRmMjYzZjcw
ODY5YzI2ZC4uYzUzODVmMDRmOGM0ODY3MmI0MGNlYTk3YTBmNzFmNWY0Mzc2NzQ0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9udEhhcmZC
dXp6LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9G
b250SGFyZkJ1enouY3BwCkBAIC02NSwxNSArNjUsODEgQEAgYm9vbCBGb250OjpjYW5FeHBhbmRB
cm91bmRJZGVvZ3JhcGhzSW5Db21wbGV4VGV4dCgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitz
dGF0aWMgdm9pZCBkcmF3VmVydGljYWxUZXh0V2l0aEJyb2tlbklkZW9ncmFwaHMoR3JhcGhpY3ND
b250ZXh0KiBnYywgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVy
JiBnbHlwaEJ1ZmZlciwgaW50IGZyb20sIGludCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50KQoreworICAgIGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSogYWR2ID0gZ2x5cGhCdWZm
ZXIuYWR2YW5jZXMoZnJvbSk7CisgICAgVmVjdG9yPFNrUG9pbnQsIDMyPiBiZWdpblBvaW50cyhu
dW1HbHlwaHMpOworICAgIFZlY3RvcjxTa1BvaW50LCAzMj4gZW5kUG9pbnRzKG51bUdseXBocyk7
CisgICAgU2tTY2FsYXIgeCA9IFNrRmxvYXRUb1NjYWxhcihwb2ludC54KCkpOworICAgIFNrU2Nh
bGFyIHkgPSBTa0Zsb2F0VG9TY2FsYXIocG9pbnQueSgpKTsKKworICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbnVtR2x5cGhzOyArK2kpIHsKKyAgICAgICAgU2tTY2FsYXIgd2lkdGggPSBTa0Zsb2F0
VG9TY2FsYXIoYWR2WzBdLndpZHRoKCkpOworICAgICAgICBiZWdpblBvaW50c1tpXS5zZXQoeCAr
IHdpZHRoLCB5KTsKKyAgICAgICAgZW5kUG9pbnRzW2ldLnNldCh4ICsgd2lkdGgsIHkgLSB3aWR0
aCk7CisgICAgICAgIHggKz0gU2tGbG9hdFRvU2NhbGFyKHdpZHRoKTsKKyAgICAgICAgeSArPSBT
a0Zsb2F0VG9TY2FsYXIoYWR2W2ldLmhlaWdodCgpKTsKKyAgICB9CisKKyAgICBTa0NhbnZhcyog
Y2FudmFzID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKKyAgICBjb25zdCBHbHlw
aEJ1ZmZlckdseXBoKiBnbHlwaHMgPSBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSk7CisgICAgVGV4
dERyYXdpbmdNb2RlRmxhZ3MgdGV4dE1vZGUgPSBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmdldFRl
eHREcmF3aW5nTW9kZSgpOworCisgICAgaWYgKHRleHRNb2RlICYgVGV4dE1vZGVGaWxsKSB7Cisg
ICAgICAgIFNrUGFpbnQgcGFpbnQ7CisgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+c2V0
dXBQYWludEZvckZpbGxpbmcoJnBhaW50KTsKKyAgICAgICAgZm9udC0+cGxhdGZvcm1EYXRhKCku
c2V0dXBQYWludCgmcGFpbnQpOworICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmFkanVz
dFRleHRSZW5kZXJNb2RlKCZwYWludCk7CisgICAgICAgIHBhaW50LnNldFRleHRFbmNvZGluZyhT
a1BhaW50OjprR2x5cGhJRF9UZXh0RW5jb2RpbmcpOworCisgICAgICAgIFNrUGF0aCBwYXRoOwor
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUdseXBoczsgKytpKSB7CisgICAgICAgICAg
ICBwYXRoLnJlc2V0KCk7CisgICAgICAgICAgICBwYXRoLm1vdmVUbyhiZWdpblBvaW50c1tpXSk7
CisgICAgICAgICAgICBwYXRoLmxpbmVUbyhlbmRQb2ludHNbaV0pOworICAgICAgICAgICAgY2Fu
dmFzLT5kcmF3VGV4dE9uUGF0aChnbHlwaHMgKyBpLCAyLCBwYXRoLCAwLCBwYWludCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoKHRleHRNb2RlICYgVGV4dE1vZGVTdHJva2UpCisgICAg
ICAgICYmIGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Z2V0U3Ryb2tlU3R5bGUoKSAhPSBOb1N0cm9r
ZQorICAgICAgICAmJiBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmdldFN0cm9rZVRoaWNrbmVzcygp
ID4gMCkgeworICAgICAgICBTa1BhaW50IHBhaW50OworICAgICAgICBnYy0+cGxhdGZvcm1Db250
ZXh0KCktPnNldHVwUGFpbnRGb3JTdHJva2luZygmcGFpbnQsIDAsIDApOworICAgICAgICBmb250
LT5wbGF0Zm9ybURhdGEoKS5zZXR1cFBhaW50KCZwYWludCk7CisgICAgICAgIGdjLT5wbGF0Zm9y
bUNvbnRleHQoKS0+YWRqdXN0VGV4dFJlbmRlck1vZGUoJnBhaW50KTsKKyAgICAgICAgcGFpbnQu
c2V0VGV4dEVuY29kaW5nKFNrUGFpbnQ6OmtHbHlwaElEX1RleHRFbmNvZGluZyk7CisKKyAgICAg
ICAgaWYgKHRleHRNb2RlICYgVGV4dE1vZGVGaWxsKQorICAgICAgICAgICAgcGFpbnQuc2V0TG9v
cGVyKDApOworCisgICAgICAgIFNrUGF0aCBwYXRoOworICAgICAgICBmb3IgKGludCBpID0gMDsg
aSA8IG51bUdseXBoczsgKytpKSB7CisgICAgICAgICAgICBwYXRoLnJlc2V0KCk7CisgICAgICAg
ICAgICBwYXRoLm1vdmVUbyhiZWdpblBvaW50c1tpXSk7CisgICAgICAgICAgICBwYXRoLmxpbmVU
byhlbmRQb2ludHNbaV0pOworICAgICAgICAgICAgY2FudmFzLT5kcmF3VGV4dE9uUGF0aChnbHlw
aHMgKyBpLCAyLCBwYXRoLCAwLCBwYWludCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQg
Rm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBTaW1wbGVGb250RGF0
YSogZm9udCwKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhC
dWZmZXIsICBpbnQgZnJvbSwgaW50IG51bUdseXBocywKICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBGbG9hdFBvaW50JiBwb2ludCkgY29uc3QgewogICAgIFNrQVNTRVJUKHNpemVvZihHbHlw
aEJ1ZmZlckdseXBoKSA9PSBzaXplb2YodWludDE2X3QpKTsgLy8gY29tcGlsZS10aW1lIGFzc2Vy
dAogCi0gICAgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzID0gZ2x5cGhCdWZmZXIuZ2x5
cGhzKGZyb20pOworICAgIGJvb2wgaXNWZXJ0aWNhbCA9IGZvbnQtPnBsYXRmb3JtRGF0YSgpLm9y
aWVudGF0aW9uKCkgPT0gVmVydGljYWw7CiAgICAgU2tTY2FsYXIgeCA9IFNrRmxvYXRUb1NjYWxh
cihwb2ludC54KCkpOwogICAgIFNrU2NhbGFyIHkgPSBTa0Zsb2F0VG9TY2FsYXIocG9pbnQueSgp
KTsKIAorICAgIGlmIChpc1ZlcnRpY2FsKSB7CisgICAgICAgIGlmICghZm9udC0+aGFzVmVydGlj
YWxHbHlwaHMoKSkgeworICAgICAgICAgICAgZHJhd1ZlcnRpY2FsVGV4dFdpdGhCcm9rZW5JZGVv
Z3JhcGhzKGdjLCBmb250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBwb2ludCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgeSArPSBTa0Zsb2F0VG9TY2Fs
YXIoZm9udC0+Zm9udE1ldHJpY3MoKS5mbG9hdEFzY2VudChJZGVvZ3JhcGhpY0Jhc2VsaW5lKSAt
IGZvbnQtPmZvbnRNZXRyaWNzKCkuZmxvYXRBc2NlbnQoKSk7CisgICAgfQorCiAgICAgLy8gRklY
TUU6IHRleHQgcmVuZGVyaW5nIHNwZWVkOgogICAgIC8vIEFuZHJvaWQgaGFzIGNvZGUgaW4gdGhl
aXIgV2ViQ29yZSBmb3JrIHRvIHNwZWNpYWwgY2FzZSB3aGVuIHRoZQogICAgIC8vIEdseXBoQnVm
ZmVyIGhhcyBubyBhZHZhbmNlcyBvdGhlciB0aGFuIHRoZSBkZWZhdWx0cy4gSW4gdGhhdCBjYXNl
IHRoZQpAQCAtODEsMjQgKzE0NywyNSBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3ND
b250ZXh0KiBnYywgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsCiAgICAgLy8gcGF0Y2hlcyBt
YXkgYmUgdXBzdHJlYW1lZCB0byBXZWJLaXQgc28gd2UgYWx3YXlzIHVzZSB0aGUgc2xvd2VyIHBh
dGgKICAgICAvLyBoZXJlLgogICAgIGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSogYWR2ID0gZ2x5
cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSk7Ci0gICAgU2tBdXRvU1RNYWxsb2M8MzIsIFNrUG9pbnQ+
IHN0b3JhZ2UobnVtR2x5cGhzKSwgc3RvcmFnZTIobnVtR2x5cGhzKSwgc3RvcmFnZTMobnVtR2x5
cGhzKTsKKyAgICBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMgPSBnbHlwaEJ1ZmZlci5n
bHlwaHMoZnJvbSk7CisgICAgU2tBdXRvU1RNYWxsb2M8MzIsIFNrUG9pbnQ+IHN0b3JhZ2UobnVt
R2x5cGhzKTsKICAgICBTa1BvaW50KiBwb3MgPSBzdG9yYWdlLmdldCgpOwotICAgIFNrUG9pbnQq
IHZQb3NCZWdpbiA9IHN0b3JhZ2UyLmdldCgpOwotICAgIFNrUG9pbnQqIHZQb3NFbmQgPSBzdG9y
YWdlMy5nZXQoKTsKIAotICAgIGJvb2wgaXNWZXJ0aWNhbCA9IGZvbnQtPnBsYXRmb3JtRGF0YSgp
Lm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWw7CisgICAgU2tDYW52YXMqIGNhbnZhcyA9IGdjLT5w
bGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1H
bHlwaHM7IGkrKykgewotICAgICAgICBTa1NjYWxhciBteVdpZHRoID0gU2tGbG9hdFRvU2NhbGFy
KGFkdltpXS53aWR0aCgpKTsKICAgICAgICAgcG9zW2ldLnNldCh4LCB5KTsKLSAgICAgICAgaWYg
KGlzVmVydGljYWwpIHsKLSAgICAgICAgICAgIHZQb3NCZWdpbltpXS5zZXQoeCArIG15V2lkdGgs
IHkpOwotICAgICAgICAgICAgdlBvc0VuZFtpXS5zZXQoeCArIG15V2lkdGgsIHkgLSBteVdpZHRo
KTsKLSAgICAgICAgfQotICAgICAgICB4ICs9IG15V2lkdGg7CisgICAgICAgIHggKz0gU2tGbG9h
dFRvU2NhbGFyKGFkdltpXS53aWR0aCgpKTsKICAgICAgICAgeSArPSBTa0Zsb2F0VG9TY2FsYXIo
YWR2W2ldLmhlaWdodCgpKTsKICAgICB9CisgICAgaWYgKGlzVmVydGljYWwpIHsKKyAgICAgICAg
Y2FudmFzLT5zYXZlKCk7CisgICAgICAgIGNhbnZhcy0+cm90YXRlKC05MCk7CisgICAgICAgIFNr
TWF0cml4IHJvdGF0b3I7CisgICAgICAgIHJvdGF0b3IucmVzZXQoKTsKKyAgICAgICAgcm90YXRv
ci5zZXRSb3RhdGUoOTApOworICAgICAgICByb3RhdG9yLm1hcFBvaW50cyhwb3MsIG51bUdseXBo
cyk7CisgICAgfQogCi0gICAgU2tDYW52YXMqIGNhbnZhcyA9IGdjLT5wbGF0Zm9ybUNvbnRleHQo
KS0+Y2FudmFzKCk7CiAgICAgVGV4dERyYXdpbmdNb2RlRmxhZ3MgdGV4dE1vZGUgPSBnYy0+cGxh
dGZvcm1Db250ZXh0KCktPmdldFRleHREcmF3aW5nTW9kZSgpOwogCiAgICAgLy8gV2UgZHJhdyB0
ZXh0IHVwIHRvIHR3byB0aW1lcyAob25jZSBmb3IgZmlsbCwgb25jZSBmb3Igc3Ryb2tlKS4KQEAg
LTEwOSwxNiArMTc2LDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCog
Z2MsIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250LAogICAgICAgICBnYy0+cGxhdGZvcm1Db250
ZXh0KCktPmFkanVzdFRleHRSZW5kZXJNb2RlKCZwYWludCk7CiAgICAgICAgIHBhaW50LnNldFRl
eHRFbmNvZGluZyhTa1BhaW50OjprR2x5cGhJRF9UZXh0RW5jb2RpbmcpOwogCi0gICAgICAgIGlm
IChpc1ZlcnRpY2FsKSB7Ci0gICAgICAgICAgICBTa1BhdGggcGF0aDsKLSAgICAgICAgICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgbnVtR2x5cGhzOyArK2kpIHsKLSAgICAgICAgICAgICAgICBwYXRo
LnJlc2V0KCk7Ci0gICAgICAgICAgICAgICAgcGF0aC5tb3ZlVG8odlBvc0JlZ2luW2ldKTsKLSAg
ICAgICAgICAgICAgICBwYXRoLmxpbmVUbyh2UG9zRW5kW2ldKTsKLSAgICAgICAgICAgICAgICBj
YW52YXMtPmRyYXdUZXh0T25QYXRoKGdseXBocyArIGksIDIsIHBhdGgsIDAsIHBhaW50KTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBjYW52YXMtPmRyYXdQb3NU
ZXh0KGdseXBocywgbnVtR2x5cGhzIDw8IDEsIHBvcywgcGFpbnQpOworICAgICAgICBjYW52YXMt
PmRyYXdQb3NUZXh0KGdseXBocywgbnVtR2x5cGhzIDw8IDEsIHBvcywgcGFpbnQpOwogICAgIH0K
IAogICAgIGlmICgodGV4dE1vZGUgJiBUZXh0TW9kZVN0cm9rZSkKQEAgLTEzOCwxNyArMTk2LDEw
IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBTaW1w
bGVGb250RGF0YSogZm9udCwKICAgICAgICAgICAgIHBhaW50LnNldExvb3BlcigwKTsKICAgICAg
ICAgfQogCi0gICAgICAgIGlmIChpc1ZlcnRpY2FsKSB7Ci0gICAgICAgICAgICBTa1BhdGggcGF0
aDsKLSAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtR2x5cGhzOyArK2kpIHsKLSAg
ICAgICAgICAgICAgICBwYXRoLnJlc2V0KCk7Ci0gICAgICAgICAgICAgICAgcGF0aC5tb3ZlVG8o
dlBvc0JlZ2luW2ldKTsKLSAgICAgICAgICAgICAgICBwYXRoLmxpbmVUbyh2UG9zRW5kW2ldKTsK
LSAgICAgICAgICAgICAgICBjYW52YXMtPmRyYXdUZXh0T25QYXRoKGdseXBocyArIGksIDIsIHBh
dGgsIDAsIHBhaW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICBjYW52YXMtPmRyYXdQb3NUZXh0KGdseXBocywgbnVtR2x5cGhzIDw8IDEsIHBvcywgcGFpbnQp
OworICAgICAgICBjYW52YXMtPmRyYXdQb3NUZXh0KGdseXBocywgbnVtR2x5cGhzIDw8IDEsIHBv
cywgcGFpbnQpOwogICAgIH0KKyAgICBpZiAoaXNWZXJ0aWNhbCkKKyAgICAgICAgY2FudmFzLT5y
ZXN0b3JlKCk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldHVwRm9yVGV4dFBhaW50aW5nKFNrUGFpbnQq
IHBhaW50LCBTa0NvbG9yIGNvbG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9udFBsYXRmb3JtRGF0YUhhcmZCdXp6LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRQbGF0Zm9ybURhdGFIYXJm
QnV6ei5jcHAKaW5kZXggMmQ5ZTg2YTM1Zjc0NDZkZDdlMGQwZWUxYjY1NzliZWExM2Q4Y2Y0NS4u
Y2JhNWZiNDVjMWYxNGNkMWQ5ODlhZjYyZDU4MDhhNmMzMjFjZGVlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9udFBsYXRmb3JtRGF0YUhh
cmZCdXp6LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6
ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enouY3BwCkBAIC0yMzAsNiArMjMwLDcgQEAgdm9pZCBG
b250UGxhdGZvcm1EYXRhOjpzZXR1cFBhaW50KFNrUGFpbnQqIHBhaW50KSBjb25zdAogICAgIHBh
aW50LT5zZXRUeXBlZmFjZShtX3R5cGVmYWNlKTsKICAgICBwYWludC0+c2V0RmFrZUJvbGRUZXh0
KG1fZmFrZUJvbGQpOwogICAgIHBhaW50LT5zZXRUZXh0U2tld1gobV9mYWtlSXRhbGljID8gLVNL
X1NjYWxhcjEgLyA0IDogMCk7CisgICAgcGFpbnQtPnNldFZlcnRpY2FsVGV4dChtX29yaWVudGF0
aW9uID09IFZlcnRpY2FsKTsKIH0KIAogU2tGb250SUQgRm9udFBsYXRmb3JtRGF0YTo6dW5pcXVl
SUQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9TaW1wbGVGb250RGF0YVNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9TaW1wbGVGb250RGF0YVNraWEuY3BwCmluZGV4IDU0NDg2YzNhYTRlNjk0ODMx
NTgwYTkyMjk1NjU5MDBlY2YwN2MwODcuLjgyZjYwZDg2YzIwN2RmNjE2MGMyYWNlMDEyODQ1YjM5
YmRjODc2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvU2ltcGxlRm9udERhdGFTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5jcHAKQEAgLTI0Miw2ICsyNDIsOCBAQCBm
bG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBj
b25zdAogICAgIFNrUGFpbnQgcGFpbnQ7CiAKICAgICBtX3BsYXRmb3JtRGF0YS5zZXR1cFBhaW50
KCZwYWludCk7CisgICAgaWYgKHBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0gVmVydGlj
YWwgJiYgbV9pc0Jyb2tlbklkZW9ncmFwaEZhbGxiYWNrKQorICAgICAgICBwYWludC5zZXRWZXJ0
aWNhbFRleHQoZmFsc2UpOwogCiAgICAgcGFpbnQuc2V0VGV4dEVuY29kaW5nKFNrUGFpbnQ6OmtH
bHlwaElEX1RleHRFbmNvZGluZyk7CiAgICAgU2tTY2FsYXIgd2lkdGggPSBwYWludC5tZWFzdXJl
VGV4dCgmZ2x5cGgsIDIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166079</attachid>
            <date>2012-09-27 15:42:01 -0700</date>
            <delta_ts>2012-09-27 15:44:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-97676-20120928074119.patch</filename>
            <type>text/plain</type>
            <size>10700</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjI5YjJlMmNhMTk0ODhk
YmMxNzgxNzczMzY0OGVhNTBhNDYyZTIxNi4uNDk1OTczODc5NGU1NzkxYmJmZjRjYzQyMjdiNzIz
YWMyYTRkMWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA5LTI3ICBLZW5p
Y2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1d
IEZvbnRIYXJmQnV6ei5jcHAgc2hvdWxkIG5vdCB1c2UgZHJhd1RleHRPblBhdGgoKS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3Njc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICBVc2UgZHJhd1Bvc1RleHQoKSBp
ZiBwb3NzaWJsZSBmb3IgdmVydGljYWwgdGV4dC4KKyAgICAgICAgVXNlIGRyYXdUZXh0T25QYXRo
KCkgb25seSBpZiB0aGUgZm9udCBkb2Vzbid0IGhhdmUgdmhlYS92bXR4IHRhYmxlLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yIG9uIExheW91dFRlc3RzLgor
ICAgICAgICBDb25maXJtZWQgaW1wcm92ZW1lbnQgaW4gdmVydGljYWwgdGV4dCBwb3NpdGlvbmlu
ZyB1c2luZyBpcGFmb250IGFuZCBTa2lhIHI1Njc3LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFyZmJ1enovRm9udEhhcmZCdXp6LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdW
ZXJ0aWNhbFRleHRXaXRoQnJva2VuSWRlb2dyYXBocyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhzKTogRHJhdyB2ZXJ0aWNhbCB0
ZXh0IGJ5IGRyYXdQb3NUZXh0KCkgaW4gYSBzaW1pbGFyIG1hbm5lciBvZiBGb250U2tpYS5jcHAu
CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRleHQpOiBEaXNhYmxlIHNldFZl
cnRpY2FsVGV4dCgpLiBDb21wbGV4IHBhdGggZG9lc24ndCBzdXBwb3J0IGl0IG5vdy4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enou
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6c2V0dXBQYWludCk6IENh
bGwgc2V0VmVydGlhbFRleHQoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Np
bXBsZUZvbnREYXRhU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1XaWR0aEZvckdseXBoKTogRGlzYWJsZSBzZXRWZXJ0aWNhbFRleHQoKSBpZiB0aGUg
Zm9udCBkb2Vzbid0IGhhdmUgdmVydGljYWwgbWV0cmljcy4KKwogMjAxMi0wOS0yNiAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgUGFnZTo6
ZnJhbWVDb3VudCgpIHRvIHN1YmZyYW1lQ291bnQoKSwgYW5kIHJlbGF0ZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRIYXJmQnV6ei5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250SGFyZkJ1
enouY3BwCmluZGV4IDk3YWRkNjIyNWEyNjNmM2E4MjhkYmI5OTI0ZjI2M2Y3MDg2OWMyNmQuLjUx
Y2VlYjFjYzA5ZGIxNGEwYzI5YWY5ZGVlNDQyNzIwODAxNmE1YjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRIYXJmQnV6ei5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9udEhhcmZCdXp6
LmNwcApAQCAtNjUsMTUgKzY1LDgxIEBAIGJvb2wgRm9udDo6Y2FuRXhwYW5kQXJvdW5kSWRlb2dy
YXBoc0luQ29tcGxleFRleHQoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIHZvaWQg
ZHJhd1ZlcnRpY2FsVGV4dFdpdGhCcm9rZW5JZGVvZ3JhcGhzKEdyYXBoaWNzQ29udGV4dCogZ2Ms
IGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZm
ZXIsIGludCBmcm9tLCBpbnQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKK3sK
KyAgICBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqIGFkdiA9IGdseXBoQnVmZmVyLmFkdmFuY2Vz
KGZyb20pOworICAgIFZlY3RvcjxTa1BvaW50LCAzMj4gYmVnaW5Qb2ludHMobnVtR2x5cGhzKTsK
KyAgICBWZWN0b3I8U2tQb2ludCwgMzI+IGVuZFBvaW50cyhudW1HbHlwaHMpOworICAgIFNrU2Nh
bGFyIHggPSBTa0Zsb2F0VG9TY2FsYXIocG9pbnQueCgpKTsKKyAgICBTa1NjYWxhciB5ID0gU2tG
bG9hdFRvU2NhbGFyKHBvaW50LnkoKSk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUds
eXBoczsgKytpKSB7CisgICAgICAgIFNrU2NhbGFyIHdpZHRoID0gU2tGbG9hdFRvU2NhbGFyKGFk
dlswXS53aWR0aCgpKTsKKyAgICAgICAgYmVnaW5Qb2ludHNbaV0uc2V0KHggKyB3aWR0aCwgeSk7
CisgICAgICAgIGVuZFBvaW50c1tpXS5zZXQoeCArIHdpZHRoLCB5IC0gd2lkdGgpOworICAgICAg
ICB4ICs9IFNrRmxvYXRUb1NjYWxhcih3aWR0aCk7CisgICAgICAgIHkgKz0gU2tGbG9hdFRvU2Nh
bGFyKGFkdltpXS5oZWlnaHQoKSk7CisgICAgfQorCisgICAgU2tDYW52YXMqIGNhbnZhcyA9IGdj
LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCk7CisgICAgY29uc3QgR2x5cGhCdWZmZXJHbHlw
aCogZ2x5cGhzID0gZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pOworICAgIFRleHREcmF3aW5nTW9k
ZUZsYWdzIHRleHRNb2RlID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5nZXRUZXh0RHJhd2luZ01v
ZGUoKTsKKworICAgIGlmICh0ZXh0TW9kZSAmIFRleHRNb2RlRmlsbCkgeworICAgICAgICBTa1Bh
aW50IHBhaW50OworICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCktPnNldHVwUGFpbnRGb3JG
aWxsaW5nKCZwYWludCk7CisgICAgICAgIGZvbnQtPnBsYXRmb3JtRGF0YSgpLnNldHVwUGFpbnQo
JnBhaW50KTsKKyAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5hZGp1c3RUZXh0UmVuZGVy
TW9kZSgmcGFpbnQpOworICAgICAgICBwYWludC5zZXRUZXh0RW5jb2RpbmcoU2tQYWludDo6a0ds
eXBoSURfVGV4dEVuY29kaW5nKTsKKworICAgICAgICBTa1BhdGggcGF0aDsKKyAgICAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBudW1HbHlwaHM7ICsraSkgeworICAgICAgICAgICAgcGF0aC5yZXNl
dCgpOworICAgICAgICAgICAgcGF0aC5tb3ZlVG8oYmVnaW5Qb2ludHNbaV0pOworICAgICAgICAg
ICAgcGF0aC5saW5lVG8oZW5kUG9pbnRzW2ldKTsKKyAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1Rl
eHRPblBhdGgoZ2x5cGhzICsgaSwgMiwgcGF0aCwgMCwgcGFpbnQpOworICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKCh0ZXh0TW9kZSAmIFRleHRNb2RlU3Ryb2tlKQorICAgICAgICAmJiBnYy0+
cGxhdGZvcm1Db250ZXh0KCktPmdldFN0cm9rZVN0eWxlKCkgIT0gTm9TdHJva2UKKyAgICAgICAg
JiYgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5nZXRTdHJva2VUaGlja25lc3MoKSA+IDApIHsKKyAg
ICAgICAgU2tQYWludCBwYWludDsKKyAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXR1
cFBhaW50Rm9yU3Ryb2tpbmcoJnBhaW50LCAwLCAwKTsKKyAgICAgICAgZm9udC0+cGxhdGZvcm1E
YXRhKCkuc2V0dXBQYWludCgmcGFpbnQpOworICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCkt
PmFkanVzdFRleHRSZW5kZXJNb2RlKCZwYWludCk7CisgICAgICAgIHBhaW50LnNldFRleHRFbmNv
ZGluZyhTa1BhaW50OjprR2x5cGhJRF9UZXh0RW5jb2RpbmcpOworCisgICAgICAgIGlmICh0ZXh0
TW9kZSAmIFRleHRNb2RlRmlsbCkKKyAgICAgICAgICAgIHBhaW50LnNldExvb3BlcigwKTsKKwor
ICAgICAgICBTa1BhdGggcGF0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1HbHlw
aHM7ICsraSkgeworICAgICAgICAgICAgcGF0aC5yZXNldCgpOworICAgICAgICAgICAgcGF0aC5t
b3ZlVG8oYmVnaW5Qb2ludHNbaV0pOworICAgICAgICAgICAgcGF0aC5saW5lVG8oZW5kUG9pbnRz
W2ldKTsKKyAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1RleHRPblBhdGgoZ2x5cGhzICsgaSwgMiwg
cGF0aCwgMCwgcGFpbnQpOworICAgICAgICB9CisgICAgfQorfQorCiB2b2lkIEZvbnQ6OmRyYXdH
bHlwaHMoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCAgaW50
IGZyb20sIGludCBudW1HbHlwaHMsCiAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQ
b2ludCYgcG9pbnQpIGNvbnN0IHsKICAgICBTa0FTU0VSVChzaXplb2YoR2x5cGhCdWZmZXJHbHlw
aCkgPT0gc2l6ZW9mKHVpbnQxNl90KSk7IC8vIGNvbXBpbGUtdGltZSBhc3NlcnQKIAotICAgIGNv
bnN0IEdseXBoQnVmZmVyR2x5cGgqIGdseXBocyA9IGdseXBoQnVmZmVyLmdseXBocyhmcm9tKTsK
KyAgICBib29sIGlzVmVydGljYWwgPSBmb250LT5wbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigp
ID09IFZlcnRpY2FsOwogICAgIFNrU2NhbGFyIHggPSBTa0Zsb2F0VG9TY2FsYXIocG9pbnQueCgp
KTsKICAgICBTa1NjYWxhciB5ID0gU2tGbG9hdFRvU2NhbGFyKHBvaW50LnkoKSk7CiAKKyAgICBp
ZiAoaXNWZXJ0aWNhbCkgeworICAgICAgICBpZiAoIWZvbnQtPmhhc1ZlcnRpY2FsR2x5cGhzKCkp
IHsKKyAgICAgICAgICAgIGRyYXdWZXJ0aWNhbFRleHRXaXRoQnJva2VuSWRlb2dyYXBocyhnYywg
Zm9udCwgZ2x5cGhCdWZmZXIsIGZyb20sIG51bUdseXBocywgcG9pbnQpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIHkgKz0gU2tGbG9hdFRvU2NhbGFyKGZvbnQtPmZv
bnRNZXRyaWNzKCkuZmxvYXRBc2NlbnQoSWRlb2dyYXBoaWNCYXNlbGluZSkgLSBmb250LT5mb250
TWV0cmljcygpLmZsb2F0QXNjZW50KCkpOworICAgIH0KKwogICAgIC8vIEZJWE1FOiB0ZXh0IHJl
bmRlcmluZyBzcGVlZDoKICAgICAvLyBBbmRyb2lkIGhhcyBjb2RlIGluIHRoZWlyIFdlYkNvcmUg
Zm9yayB0byBzcGVjaWFsIGNhc2Ugd2hlbiB0aGUKICAgICAvLyBHbHlwaEJ1ZmZlciBoYXMgbm8g
YWR2YW5jZXMgb3RoZXIgdGhhbiB0aGUgZGVmYXVsdHMuIEluIHRoYXQgY2FzZSB0aGUKQEAgLTgx
LDI0ICsxNDcsMjUgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCogZ2Ms
IGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250LAogICAgIC8vIHBhdGNoZXMgbWF5IGJlIHVwc3Ry
ZWFtZWQgdG8gV2ViS2l0IHNvIHdlIGFsd2F5cyB1c2UgdGhlIHNsb3dlciBwYXRoCiAgICAgLy8g
aGVyZS4KICAgICBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqIGFkdiA9IGdseXBoQnVmZmVyLmFk
dmFuY2VzKGZyb20pOwotICAgIFNrQXV0b1NUTWFsbG9jPDMyLCBTa1BvaW50PiBzdG9yYWdlKG51
bUdseXBocyksIHN0b3JhZ2UyKG51bUdseXBocyksIHN0b3JhZ2UzKG51bUdseXBocyk7CisgICAg
Y29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzID0gZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20p
OworICAgIFNrQXV0b1NUTWFsbG9jPDMyLCBTa1BvaW50PiBzdG9yYWdlKG51bUdseXBocyk7CiAg
ICAgU2tQb2ludCogcG9zID0gc3RvcmFnZS5nZXQoKTsKLSAgICBTa1BvaW50KiB2UG9zQmVnaW4g
PSBzdG9yYWdlMi5nZXQoKTsKLSAgICBTa1BvaW50KiB2UG9zRW5kID0gc3RvcmFnZTMuZ2V0KCk7
CiAKLSAgICBib29sIGlzVmVydGljYWwgPSBmb250LT5wbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlv
bigpID09IFZlcnRpY2FsOworICAgIFNrQ2FudmFzKiBjYW52YXMgPSBnYy0+cGxhdGZvcm1Db250
ZXh0KCktPmNhbnZhcygpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtR2x5cGhzOyBpKysp
IHsKLSAgICAgICAgU2tTY2FsYXIgbXlXaWR0aCA9IFNrRmxvYXRUb1NjYWxhcihhZHZbaV0ud2lk
dGgoKSk7CiAgICAgICAgIHBvc1tpXS5zZXQoeCwgeSk7Ci0gICAgICAgIGlmIChpc1ZlcnRpY2Fs
KSB7Ci0gICAgICAgICAgICB2UG9zQmVnaW5baV0uc2V0KHggKyBteVdpZHRoLCB5KTsKLSAgICAg
ICAgICAgIHZQb3NFbmRbaV0uc2V0KHggKyBteVdpZHRoLCB5IC0gbXlXaWR0aCk7Ci0gICAgICAg
IH0KLSAgICAgICAgeCArPSBteVdpZHRoOworICAgICAgICB4ICs9IFNrRmxvYXRUb1NjYWxhcihh
ZHZbaV0ud2lkdGgoKSk7CiAgICAgICAgIHkgKz0gU2tGbG9hdFRvU2NhbGFyKGFkdltpXS5oZWln
aHQoKSk7CiAgICAgfQorICAgIGlmIChpc1ZlcnRpY2FsKSB7CisgICAgICAgIGNhbnZhcy0+c2F2
ZSgpOworICAgICAgICBjYW52YXMtPnJvdGF0ZSgtOTApOworICAgICAgICBTa01hdHJpeCByb3Rh
dG9yOworICAgICAgICByb3RhdG9yLnJlc2V0KCk7CisgICAgICAgIHJvdGF0b3Iuc2V0Um90YXRl
KDkwKTsKKyAgICAgICAgcm90YXRvci5tYXBQb2ludHMocG9zLCBudW1HbHlwaHMpOworICAgIH0K
IAotICAgIFNrQ2FudmFzKiBjYW52YXMgPSBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygp
OwogICAgIFRleHREcmF3aW5nTW9kZUZsYWdzIHRleHRNb2RlID0gZ2MtPnBsYXRmb3JtQ29udGV4
dCgpLT5nZXRUZXh0RHJhd2luZ01vZGUoKTsKIAogICAgIC8vIFdlIGRyYXcgdGV4dCB1cCB0byB0
d28gdGltZXMgKG9uY2UgZm9yIGZpbGwsIG9uY2UgZm9yIHN0cm9rZSkuCkBAIC0xMDksMTYgKzE3
Niw3IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBT
aW1wbGVGb250RGF0YSogZm9udCwKICAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5hZGp1
c3RUZXh0UmVuZGVyTW9kZSgmcGFpbnQpOwogICAgICAgICBwYWludC5zZXRUZXh0RW5jb2Rpbmco
U2tQYWludDo6a0dseXBoSURfVGV4dEVuY29kaW5nKTsKIAotICAgICAgICBpZiAoaXNWZXJ0aWNh
bCkgewotICAgICAgICAgICAgU2tQYXRoIHBhdGg7Ci0gICAgICAgICAgICBmb3IgKGludCBpID0g
MDsgaSA8IG51bUdseXBoczsgKytpKSB7Ci0gICAgICAgICAgICAgICAgcGF0aC5yZXNldCgpOwot
ICAgICAgICAgICAgICAgIHBhdGgubW92ZVRvKHZQb3NCZWdpbltpXSk7Ci0gICAgICAgICAgICAg
ICAgcGF0aC5saW5lVG8odlBvc0VuZFtpXSk7Ci0gICAgICAgICAgICAgICAgY2FudmFzLT5kcmF3
VGV4dE9uUGF0aChnbHlwaHMgKyBpLCAyLCBwYXRoLCAwLCBwYWludCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgY2FudmFzLT5kcmF3UG9zVGV4dChnbHlwaHMs
IG51bUdseXBocyA8PCAxLCBwb3MsIHBhaW50KTsKKyAgICAgICAgY2FudmFzLT5kcmF3UG9zVGV4
dChnbHlwaHMsIG51bUdseXBocyA8PCAxLCBwb3MsIHBhaW50KTsKICAgICB9CiAKICAgICBpZiAo
KHRleHRNb2RlICYgVGV4dE1vZGVTdHJva2UpCkBAIC0xMzgsMTcgKzE5NiwxMCBAQCB2b2lkIEZv
bnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgU2ltcGxlRm9udERhdGEq
IGZvbnQsCiAgICAgICAgICAgICBwYWludC5zZXRMb29wZXIoMCk7CiAgICAgICAgIH0KIAotICAg
ICAgICBpZiAoaXNWZXJ0aWNhbCkgewotICAgICAgICAgICAgU2tQYXRoIHBhdGg7Ci0gICAgICAg
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUdseXBoczsgKytpKSB7Ci0gICAgICAgICAgICAg
ICAgcGF0aC5yZXNldCgpOwotICAgICAgICAgICAgICAgIHBhdGgubW92ZVRvKHZQb3NCZWdpbltp
XSk7Ci0gICAgICAgICAgICAgICAgcGF0aC5saW5lVG8odlBvc0VuZFtpXSk7Ci0gICAgICAgICAg
ICAgICAgY2FudmFzLT5kcmF3VGV4dE9uUGF0aChnbHlwaHMgKyBpLCAyLCBwYXRoLCAwLCBwYWlu
dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgY2FudmFzLT5k
cmF3UG9zVGV4dChnbHlwaHMsIG51bUdseXBocyA8PCAxLCBwb3MsIHBhaW50KTsKKyAgICAgICAg
Y2FudmFzLT5kcmF3UG9zVGV4dChnbHlwaHMsIG51bUdseXBocyA8PCAxLCBwb3MsIHBhaW50KTsK
ICAgICB9CisgICAgaWYgKGlzVmVydGljYWwpCisgICAgICAgIGNhbnZhcy0+cmVzdG9yZSgpOwog
fQogCiBzdGF0aWMgdm9pZCBzZXR1cEZvclRleHRQYWludGluZyhTa1BhaW50KiBwYWludCwgU2tD
b2xvciBjb2xvcikKQEAgLTIwNSwxMiArMjU2LDE1IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhU
ZXh0KEdyYXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IFRleHRSdW4mIHJ1biwKIAogICAgICAgICBp
ZiAoZmlsbCkgewogICAgICAgICAgICAgY29udHJvbGxlci5mb250UGxhdGZvcm1EYXRhRm9yU2Ny
aXB0UnVuKCktPnNldHVwUGFpbnQoJmZpbGxQYWludCk7CisgICAgICAgICAgICAvLyBGSVhNRTog
Q29tcGxleCB0ZXh0IGRvZW4ndCBzdXBwb3J0IHZlcnRpY2FsIHRleHQuCisgICAgICAgICAgICBm
aWxsUGFpbnQuc2V0VmVydGljYWxUZXh0KGZhbHNlKTsKICAgICAgICAgICAgIGdjLT5wbGF0Zm9y
bUNvbnRleHQoKS0+YWRqdXN0VGV4dFJlbmRlck1vZGUoJmZpbGxQYWludCk7CiAgICAgICAgICAg
ICBjYW52YXMtPmRyYXdQb3NUZXh0KGNvbnRyb2xsZXIuZ2x5cGhzKCkgKyBmcm9tR2x5cGgsIGds
eXBoTGVuZ3RoIDw8IDEsIGNvbnRyb2xsZXIucG9zaXRpb25zKCkgKyBmcm9tR2x5cGgsIGZpbGxQ
YWludCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoc3Ryb2tlKSB7CiAgICAgICAgICAgICBj
b250cm9sbGVyLmZvbnRQbGF0Zm9ybURhdGFGb3JTY3JpcHRSdW4oKS0+c2V0dXBQYWludCgmc3Ry
b2tlUGFpbnQpOworICAgICAgICAgICAgZmlsbFBhaW50LnNldFZlcnRpY2FsVGV4dChmYWxzZSk7
CiAgICAgICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmFkanVzdFRleHRSZW5kZXJNb2Rl
KCZzdHJva2VQYWludCk7CiAgICAgICAgICAgICBjYW52YXMtPmRyYXdQb3NUZXh0KGNvbnRyb2xs
ZXIuZ2x5cGhzKCkgKyBmcm9tR2x5cGgsIGdseXBoTGVuZ3RoIDw8IDEsIGNvbnRyb2xsZXIucG9z
aXRpb25zKCkgKyBmcm9tR2x5cGgsIHN0cm9rZVBhaW50KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9udFBsYXRmb3Jt
RGF0YUhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZi
dXp6L0ZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6ei5jcHAKaW5kZXggMmQ5ZTg2YTM1Zjc0NDZkZDdl
MGQwZWUxYjY1NzliZWExM2Q4Y2Y0NS4uY2JhNWZiNDVjMWYxNGNkMWQ5ODlhZjYyZDU4MDhhNmMz
MjFjZGVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFy
ZmJ1enovRm9udFBsYXRmb3JtRGF0YUhhcmZCdXp6LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enouY3BwCkBA
IC0yMzAsNiArMjMwLDcgQEAgdm9pZCBGb250UGxhdGZvcm1EYXRhOjpzZXR1cFBhaW50KFNrUGFp
bnQqIHBhaW50KSBjb25zdAogICAgIHBhaW50LT5zZXRUeXBlZmFjZShtX3R5cGVmYWNlKTsKICAg
ICBwYWludC0+c2V0RmFrZUJvbGRUZXh0KG1fZmFrZUJvbGQpOwogICAgIHBhaW50LT5zZXRUZXh0
U2tld1gobV9mYWtlSXRhbGljID8gLVNLX1NjYWxhcjEgLyA0IDogMCk7CisgICAgcGFpbnQtPnNl
dFZlcnRpY2FsVGV4dChtX29yaWVudGF0aW9uID09IFZlcnRpY2FsKTsKIH0KIAogU2tGb250SUQg
Rm9udFBsYXRmb3JtRGF0YTo6dW5pcXVlSUQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9TaW1wbGVGb250RGF0YVNraWEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9TaW1wbGVGb250RGF0YVNraWEuY3Bw
CmluZGV4IDU0NDg2YzNhYTRlNjk0ODMxNTgwYTkyMjk1NjU5MDBlY2YwN2MwODcuLjgyZjYwZDg2
YzIwN2RmNjE2MGMyYWNlMDEyODQ1YjM5YmRjODc2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvU2ltcGxlRm9udERhdGFTa2lhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5j
cHAKQEAgLTI0Miw2ICsyNDIsOCBAQCBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0
aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogICAgIFNrUGFpbnQgcGFpbnQ7CiAKICAgICBt
X3BsYXRmb3JtRGF0YS5zZXR1cFBhaW50KCZwYWludCk7CisgICAgaWYgKHBsYXRmb3JtRGF0YSgp
Lm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwgJiYgbV9pc0Jyb2tlbklkZW9ncmFwaEZhbGxiYWNr
KQorICAgICAgICBwYWludC5zZXRWZXJ0aWNhbFRleHQoZmFsc2UpOwogCiAgICAgcGFpbnQuc2V0
VGV4dEVuY29kaW5nKFNrUGFpbnQ6OmtHbHlwaElEX1RleHRFbmNvZGluZyk7CiAgICAgU2tTY2Fs
YXIgd2lkdGggPSBwYWludC5tZWFzdXJlVGV4dCgmZ2x5cGgsIDIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166082</attachid>
            <date>2012-09-27 15:44:50 -0700</date>
            <delta_ts>2012-09-27 16:06:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-97676-20120928074407.patch</filename>
            <type>text/plain</type>
            <size>10746</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjI5YjJlMmNhMTk0ODhk
YmMxNzgxNzczMzY0OGVhNTBhNDYyZTIxNi4uNDk1OTczODc5NGU1NzkxYmJmZjRjYzQyMjdiNzIz
YWMyYTRkMWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA5LTI3ICBLZW5p
Y2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1d
IEZvbnRIYXJmQnV6ei5jcHAgc2hvdWxkIG5vdCB1c2UgZHJhd1RleHRPblBhdGgoKS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3Njc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICBVc2UgZHJhd1Bvc1RleHQoKSBp
ZiBwb3NzaWJsZSBmb3IgdmVydGljYWwgdGV4dC4KKyAgICAgICAgVXNlIGRyYXdUZXh0T25QYXRo
KCkgb25seSBpZiB0aGUgZm9udCBkb2Vzbid0IGhhdmUgdmhlYS92bXR4IHRhYmxlLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yIG9uIExheW91dFRlc3RzLgor
ICAgICAgICBDb25maXJtZWQgaW1wcm92ZW1lbnQgaW4gdmVydGljYWwgdGV4dCBwb3NpdGlvbmlu
ZyB1c2luZyBpcGFmb250IGFuZCBTa2lhIHI1Njc3LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFyZmJ1enovRm9udEhhcmZCdXp6LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdW
ZXJ0aWNhbFRleHRXaXRoQnJva2VuSWRlb2dyYXBocyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhzKTogRHJhdyB2ZXJ0aWNhbCB0
ZXh0IGJ5IGRyYXdQb3NUZXh0KCkgaW4gYSBzaW1pbGFyIG1hbm5lciBvZiBGb250U2tpYS5jcHAu
CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRleHQpOiBEaXNhYmxlIHNldFZl
cnRpY2FsVGV4dCgpLiBDb21wbGV4IHBhdGggZG9lc24ndCBzdXBwb3J0IGl0IG5vdy4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enou
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6c2V0dXBQYWludCk6IENh
bGwgc2V0VmVydGlhbFRleHQoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Np
bXBsZUZvbnREYXRhU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1XaWR0aEZvckdseXBoKTogRGlzYWJsZSBzZXRWZXJ0aWNhbFRleHQoKSBpZiB0aGUg
Zm9udCBkb2Vzbid0IGhhdmUgdmVydGljYWwgbWV0cmljcy4KKwogMjAxMi0wOS0yNiAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgUGFnZTo6
ZnJhbWVDb3VudCgpIHRvIHN1YmZyYW1lQ291bnQoKSwgYW5kIHJlbGF0ZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRIYXJmQnV6ei5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250SGFyZkJ1
enouY3BwCmluZGV4IDk3YWRkNjIyNWEyNjNmM2E4MjhkYmI5OTI0ZjI2M2Y3MDg2OWMyNmQuLjUz
NzY1NmFmOTM3MTkxNDlkYzRlMmU5NzJkYjY0ZTA1MTdmZDJkZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRIYXJmQnV6ei5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9udEhhcmZCdXp6
LmNwcApAQCAtNjUsMTUgKzY1LDgxIEBAIGJvb2wgRm9udDo6Y2FuRXhwYW5kQXJvdW5kSWRlb2dy
YXBoc0luQ29tcGxleFRleHQoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIHZvaWQg
ZHJhd1ZlcnRpY2FsVGV4dFdpdGhCcm9rZW5JZGVvZ3JhcGhzKEdyYXBoaWNzQ29udGV4dCogZ2Ms
IGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZm
ZXIsIGludCBmcm9tLCBpbnQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKK3sK
KyAgICBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqIGFkdiA9IGdseXBoQnVmZmVyLmFkdmFuY2Vz
KGZyb20pOworICAgIFZlY3RvcjxTa1BvaW50LCAzMj4gYmVnaW5Qb2ludHMobnVtR2x5cGhzKTsK
KyAgICBWZWN0b3I8U2tQb2ludCwgMzI+IGVuZFBvaW50cyhudW1HbHlwaHMpOworICAgIFNrU2Nh
bGFyIHggPSBTa0Zsb2F0VG9TY2FsYXIocG9pbnQueCgpKTsKKyAgICBTa1NjYWxhciB5ID0gU2tG
bG9hdFRvU2NhbGFyKHBvaW50LnkoKSk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUds
eXBoczsgKytpKSB7CisgICAgICAgIFNrU2NhbGFyIHdpZHRoID0gU2tGbG9hdFRvU2NhbGFyKGFk
dlswXS53aWR0aCgpKTsKKyAgICAgICAgYmVnaW5Qb2ludHNbaV0uc2V0KHggKyB3aWR0aCwgeSk7
CisgICAgICAgIGVuZFBvaW50c1tpXS5zZXQoeCArIHdpZHRoLCB5IC0gd2lkdGgpOworICAgICAg
ICB4ICs9IFNrRmxvYXRUb1NjYWxhcih3aWR0aCk7CisgICAgICAgIHkgKz0gU2tGbG9hdFRvU2Nh
bGFyKGFkdltpXS5oZWlnaHQoKSk7CisgICAgfQorCisgICAgU2tDYW52YXMqIGNhbnZhcyA9IGdj
LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCk7CisgICAgY29uc3QgR2x5cGhCdWZmZXJHbHlw
aCogZ2x5cGhzID0gZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pOworICAgIFRleHREcmF3aW5nTW9k
ZUZsYWdzIHRleHRNb2RlID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5nZXRUZXh0RHJhd2luZ01v
ZGUoKTsKKworICAgIGlmICh0ZXh0TW9kZSAmIFRleHRNb2RlRmlsbCkgeworICAgICAgICBTa1Bh
aW50IHBhaW50OworICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCktPnNldHVwUGFpbnRGb3JG
aWxsaW5nKCZwYWludCk7CisgICAgICAgIGZvbnQtPnBsYXRmb3JtRGF0YSgpLnNldHVwUGFpbnQo
JnBhaW50KTsKKyAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5hZGp1c3RUZXh0UmVuZGVy
TW9kZSgmcGFpbnQpOworICAgICAgICBwYWludC5zZXRUZXh0RW5jb2RpbmcoU2tQYWludDo6a0ds
eXBoSURfVGV4dEVuY29kaW5nKTsKKworICAgICAgICBTa1BhdGggcGF0aDsKKyAgICAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBudW1HbHlwaHM7ICsraSkgeworICAgICAgICAgICAgcGF0aC5yZXNl
dCgpOworICAgICAgICAgICAgcGF0aC5tb3ZlVG8oYmVnaW5Qb2ludHNbaV0pOworICAgICAgICAg
ICAgcGF0aC5saW5lVG8oZW5kUG9pbnRzW2ldKTsKKyAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1Rl
eHRPblBhdGgoZ2x5cGhzICsgaSwgc2l6ZW9mKEdseXBoQnVmZmVyR2x5cGgpLCBwYXRoLCAwLCBw
YWludCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoKHRleHRNb2RlICYgVGV4dE1vZGVT
dHJva2UpCisgICAgICAgICYmIGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Z2V0U3Ryb2tlU3R5bGUo
KSAhPSBOb1N0cm9rZQorICAgICAgICAmJiBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmdldFN0cm9r
ZVRoaWNrbmVzcygpID4gMCkgeworICAgICAgICBTa1BhaW50IHBhaW50OworICAgICAgICBnYy0+
cGxhdGZvcm1Db250ZXh0KCktPnNldHVwUGFpbnRGb3JTdHJva2luZygmcGFpbnQsIDAsIDApOwor
ICAgICAgICBmb250LT5wbGF0Zm9ybURhdGEoKS5zZXR1cFBhaW50KCZwYWludCk7CisgICAgICAg
IGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+YWRqdXN0VGV4dFJlbmRlck1vZGUoJnBhaW50KTsKKyAg
ICAgICAgcGFpbnQuc2V0VGV4dEVuY29kaW5nKFNrUGFpbnQ6OmtHbHlwaElEX1RleHRFbmNvZGlu
Zyk7CisKKyAgICAgICAgaWYgKHRleHRNb2RlICYgVGV4dE1vZGVGaWxsKQorICAgICAgICAgICAg
cGFpbnQuc2V0TG9vcGVyKDApOworCisgICAgICAgIFNrUGF0aCBwYXRoOworICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IG51bUdseXBoczsgKytpKSB7CisgICAgICAgICAgICBwYXRoLnJlc2V0
KCk7CisgICAgICAgICAgICBwYXRoLm1vdmVUbyhiZWdpblBvaW50c1tpXSk7CisgICAgICAgICAg
ICBwYXRoLmxpbmVUbyhlbmRQb2ludHNbaV0pOworICAgICAgICAgICAgY2FudmFzLT5kcmF3VGV4
dE9uUGF0aChnbHlwaHMgKyBpLCBzaXplb2YoR2x5cGhCdWZmZXJHbHlwaCksIHBhdGgsIDAsIHBh
aW50KTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBo
aWNzQ29udGV4dCogZ2MsIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250LAogICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgIGludCBmcm9tLCBpbnQg
bnVtR2x5cGhzLAogICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50
KSBjb25zdCB7CiAgICAgU2tBU1NFUlQoc2l6ZW9mKEdseXBoQnVmZmVyR2x5cGgpID09IHNpemVv
Zih1aW50MTZfdCkpOyAvLyBjb21waWxlLXRpbWUgYXNzZXJ0CiAKLSAgICBjb25zdCBHbHlwaEJ1
ZmZlckdseXBoKiBnbHlwaHMgPSBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSk7CisgICAgYm9vbCBp
c1ZlcnRpY2FsID0gZm9udC0+cGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNh
bDsKICAgICBTa1NjYWxhciB4ID0gU2tGbG9hdFRvU2NhbGFyKHBvaW50LngoKSk7CiAgICAgU2tT
Y2FsYXIgeSA9IFNrRmxvYXRUb1NjYWxhcihwb2ludC55KCkpOwogCisgICAgaWYgKGlzVmVydGlj
YWwpIHsKKyAgICAgICAgaWYgKCFmb250LT5oYXNWZXJ0aWNhbEdseXBocygpKSB7CisgICAgICAg
ICAgICBkcmF3VmVydGljYWxUZXh0V2l0aEJyb2tlbklkZW9ncmFwaHMoZ2MsIGZvbnQsIGdseXBo
QnVmZmVyLCBmcm9tLCBudW1HbHlwaHMsIHBvaW50KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgICAgICB5ICs9IFNrRmxvYXRUb1NjYWxhcihmb250LT5mb250TWV0cmljcygp
LmZsb2F0QXNjZW50KElkZW9ncmFwaGljQmFzZWxpbmUpIC0gZm9udC0+Zm9udE1ldHJpY3MoKS5m
bG9hdEFzY2VudCgpKTsKKyAgICB9CisKICAgICAvLyBGSVhNRTogdGV4dCByZW5kZXJpbmcgc3Bl
ZWQ6CiAgICAgLy8gQW5kcm9pZCBoYXMgY29kZSBpbiB0aGVpciBXZWJDb3JlIGZvcmsgdG8gc3Bl
Y2lhbCBjYXNlIHdoZW4gdGhlCiAgICAgLy8gR2x5cGhCdWZmZXIgaGFzIG5vIGFkdmFuY2VzIG90
aGVyIHRoYW4gdGhlIGRlZmF1bHRzLiBJbiB0aGF0IGNhc2UgdGhlCkBAIC04MSwyNCArMTQ3LDI1
IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBTaW1w
bGVGb250RGF0YSogZm9udCwKICAgICAvLyBwYXRjaGVzIG1heSBiZSB1cHN0cmVhbWVkIHRvIFdl
YktpdCBzbyB3ZSBhbHdheXMgdXNlIHRoZSBzbG93ZXIgcGF0aAogICAgIC8vIGhlcmUuCiAgICAg
Y29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBhZHYgPSBnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9t
KTsKLSAgICBTa0F1dG9TVE1hbGxvYzwzMiwgU2tQb2ludD4gc3RvcmFnZShudW1HbHlwaHMpLCBz
dG9yYWdlMihudW1HbHlwaHMpLCBzdG9yYWdlMyhudW1HbHlwaHMpOworICAgIGNvbnN0IEdseXBo
QnVmZmVyR2x5cGgqIGdseXBocyA9IGdseXBoQnVmZmVyLmdseXBocyhmcm9tKTsKKyAgICBTa0F1
dG9TVE1hbGxvYzwzMiwgU2tQb2ludD4gc3RvcmFnZShudW1HbHlwaHMpOwogICAgIFNrUG9pbnQq
IHBvcyA9IHN0b3JhZ2UuZ2V0KCk7Ci0gICAgU2tQb2ludCogdlBvc0JlZ2luID0gc3RvcmFnZTIu
Z2V0KCk7Ci0gICAgU2tQb2ludCogdlBvc0VuZCA9IHN0b3JhZ2UzLmdldCgpOwogCi0gICAgYm9v
bCBpc1ZlcnRpY2FsID0gZm9udC0+cGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBWZXJ0
aWNhbDsKKyAgICBTa0NhbnZhcyogY2FudmFzID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52
YXMoKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUdseXBoczsgaSsrKSB7Ci0gICAgICAg
IFNrU2NhbGFyIG15V2lkdGggPSBTa0Zsb2F0VG9TY2FsYXIoYWR2W2ldLndpZHRoKCkpOwogICAg
ICAgICBwb3NbaV0uc2V0KHgsIHkpOwotICAgICAgICBpZiAoaXNWZXJ0aWNhbCkgewotICAgICAg
ICAgICAgdlBvc0JlZ2luW2ldLnNldCh4ICsgbXlXaWR0aCwgeSk7Ci0gICAgICAgICAgICB2UG9z
RW5kW2ldLnNldCh4ICsgbXlXaWR0aCwgeSAtIG15V2lkdGgpOwotICAgICAgICB9Ci0gICAgICAg
IHggKz0gbXlXaWR0aDsKKyAgICAgICAgeCArPSBTa0Zsb2F0VG9TY2FsYXIoYWR2W2ldLndpZHRo
KCkpOwogICAgICAgICB5ICs9IFNrRmxvYXRUb1NjYWxhcihhZHZbaV0uaGVpZ2h0KCkpOwogICAg
IH0KKyAgICBpZiAoaXNWZXJ0aWNhbCkgeworICAgICAgICBjYW52YXMtPnNhdmUoKTsKKyAgICAg
ICAgY2FudmFzLT5yb3RhdGUoLTkwKTsKKyAgICAgICAgU2tNYXRyaXggcm90YXRvcjsKKyAgICAg
ICAgcm90YXRvci5yZXNldCgpOworICAgICAgICByb3RhdG9yLnNldFJvdGF0ZSg5MCk7CisgICAg
ICAgIHJvdGF0b3IubWFwUG9pbnRzKHBvcywgbnVtR2x5cGhzKTsKKyAgICB9CiAKLSAgICBTa0Nh
bnZhcyogY2FudmFzID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKICAgICBUZXh0
RHJhd2luZ01vZGVGbGFncyB0ZXh0TW9kZSA9IGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Z2V0VGV4
dERyYXdpbmdNb2RlKCk7CiAKICAgICAvLyBXZSBkcmF3IHRleHQgdXAgdG8gdHdvIHRpbWVzIChv
bmNlIGZvciBmaWxsLCBvbmNlIGZvciBzdHJva2UpLgpAQCAtMTA5LDE2ICsxNzYsNyBAQCB2b2lk
IEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgU2ltcGxlRm9udERh
dGEqIGZvbnQsCiAgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+YWRqdXN0VGV4dFJlbmRl
ck1vZGUoJnBhaW50KTsKICAgICAgICAgcGFpbnQuc2V0VGV4dEVuY29kaW5nKFNrUGFpbnQ6OmtH
bHlwaElEX1RleHRFbmNvZGluZyk7CiAKLSAgICAgICAgaWYgKGlzVmVydGljYWwpIHsKLSAgICAg
ICAgICAgIFNrUGF0aCBwYXRoOwotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1H
bHlwaHM7ICsraSkgewotICAgICAgICAgICAgICAgIHBhdGgucmVzZXQoKTsKLSAgICAgICAgICAg
ICAgICBwYXRoLm1vdmVUbyh2UG9zQmVnaW5baV0pOwotICAgICAgICAgICAgICAgIHBhdGgubGlu
ZVRvKHZQb3NFbmRbaV0pOwotICAgICAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1RleHRPblBhdGgo
Z2x5cGhzICsgaSwgMiwgcGF0aCwgMCwgcGFpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHQoZ2x5cGhzLCBudW1HbHlwaHMg
PDwgMSwgcG9zLCBwYWludCk7CisgICAgICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHQoZ2x5cGhzLCBu
dW1HbHlwaHMgPDwgMSwgcG9zLCBwYWludCk7CiAgICAgfQogCiAgICAgaWYgKCh0ZXh0TW9kZSAm
IFRleHRNb2RlU3Ryb2tlKQpAQCAtMTM4LDE3ICsxOTYsMTAgQEAgdm9pZCBGb250OjpkcmF3R2x5
cGhzKEdyYXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250LAogICAg
ICAgICAgICAgcGFpbnQuc2V0TG9vcGVyKDApOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGlz
VmVydGljYWwpIHsKLSAgICAgICAgICAgIFNrUGF0aCBwYXRoOwotICAgICAgICAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBudW1HbHlwaHM7ICsraSkgewotICAgICAgICAgICAgICAgIHBhdGgucmVz
ZXQoKTsKLSAgICAgICAgICAgICAgICBwYXRoLm1vdmVUbyh2UG9zQmVnaW5baV0pOwotICAgICAg
ICAgICAgICAgIHBhdGgubGluZVRvKHZQb3NFbmRbaV0pOwotICAgICAgICAgICAgICAgIGNhbnZh
cy0+ZHJhd1RleHRPblBhdGgoZ2x5cGhzICsgaSwgMiwgcGF0aCwgMCwgcGFpbnQpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHQo
Z2x5cGhzLCBudW1HbHlwaHMgPDwgMSwgcG9zLCBwYWludCk7CisgICAgICAgIGNhbnZhcy0+ZHJh
d1Bvc1RleHQoZ2x5cGhzLCBudW1HbHlwaHMgPDwgMSwgcG9zLCBwYWludCk7CiAgICAgfQorICAg
IGlmIChpc1ZlcnRpY2FsKQorICAgICAgICBjYW52YXMtPnJlc3RvcmUoKTsKIH0KIAogc3RhdGlj
IHZvaWQgc2V0dXBGb3JUZXh0UGFpbnRpbmcoU2tQYWludCogcGFpbnQsIFNrQ29sb3IgY29sb3Ip
CkBAIC0yMDUsMTIgKzI1NiwxNSBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGlj
c0NvbnRleHQqIGdjLCBjb25zdCBUZXh0UnVuJiBydW4sCiAKICAgICAgICAgaWYgKGZpbGwpIHsK
ICAgICAgICAgICAgIGNvbnRyb2xsZXIuZm9udFBsYXRmb3JtRGF0YUZvclNjcmlwdFJ1bigpLT5z
ZXR1cFBhaW50KCZmaWxsUGFpbnQpOworICAgICAgICAgICAgLy8gRklYTUU6IENvbXBsZXggdGV4
dCBkb2VuJ3Qgc3VwcG9ydCB2ZXJ0aWNhbCB0ZXh0LgorICAgICAgICAgICAgZmlsbFBhaW50LnNl
dFZlcnRpY2FsVGV4dChmYWxzZSk7CiAgICAgICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCkt
PmFkanVzdFRleHRSZW5kZXJNb2RlKCZmaWxsUGFpbnQpOwogICAgICAgICAgICAgY2FudmFzLT5k
cmF3UG9zVGV4dChjb250cm9sbGVyLmdseXBocygpICsgZnJvbUdseXBoLCBnbHlwaExlbmd0aCA8
PCAxLCBjb250cm9sbGVyLnBvc2l0aW9ucygpICsgZnJvbUdseXBoLCBmaWxsUGFpbnQpOwogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKHN0cm9rZSkgewogICAgICAgICAgICAgY29udHJvbGxlci5m
b250UGxhdGZvcm1EYXRhRm9yU2NyaXB0UnVuKCktPnNldHVwUGFpbnQoJnN0cm9rZVBhaW50KTsK
KyAgICAgICAgICAgIGZpbGxQYWludC5zZXRWZXJ0aWNhbFRleHQoZmFsc2UpOwogICAgICAgICAg
ICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5hZGp1c3RUZXh0UmVuZGVyTW9kZSgmc3Ryb2tlUGFp
bnQpOwogICAgICAgICAgICAgY2FudmFzLT5kcmF3UG9zVGV4dChjb250cm9sbGVyLmdseXBocygp
ICsgZnJvbUdseXBoLCBnbHlwaExlbmd0aCA8PCAxLCBjb250cm9sbGVyLnBvc2l0aW9ucygpICsg
ZnJvbUdseXBoLCBzdHJva2VQYWludCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6
ei5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250UGxh
dGZvcm1EYXRhSGFyZkJ1enouY3BwCmluZGV4IDJkOWU4NmEzNWY3NDQ2ZGQ3ZTBkMGVlMWI2NTc5
YmVhMTNkOGNmNDUuLmNiYTVmYjQ1YzFmMTRjZDFkOTg5YWY2MmQ1ODA4YTZjMzIxY2RlZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRQ
bGF0Zm9ybURhdGFIYXJmQnV6ei5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFyZmJ1enovRm9udFBsYXRmb3JtRGF0YUhhcmZCdXp6LmNwcApAQCAtMjMwLDYgKzIz
MCw3IEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6c2V0dXBQYWludChTa1BhaW50KiBwYWludCkg
Y29uc3QKICAgICBwYWludC0+c2V0VHlwZWZhY2UobV90eXBlZmFjZSk7CiAgICAgcGFpbnQtPnNl
dEZha2VCb2xkVGV4dChtX2Zha2VCb2xkKTsKICAgICBwYWludC0+c2V0VGV4dFNrZXdYKG1fZmFr
ZUl0YWxpYyA/IC1TS19TY2FsYXIxIC8gNCA6IDApOworICAgIHBhaW50LT5zZXRWZXJ0aWNhbFRl
eHQobV9vcmllbnRhdGlvbiA9PSBWZXJ0aWNhbCk7CiB9CiAKIFNrRm9udElEIEZvbnRQbGF0Zm9y
bURhdGE6OnVuaXF1ZUlEKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvU2ltcGxlRm9udERhdGFTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvU2ltcGxlRm9udERhdGFTa2lhLmNwcAppbmRleCA1NDQ4
NmMzYWE0ZTY5NDgzMTU4MGE5MjI5NTY1OTAwZWNmMDdjMDg3Li44MmY2MGQ4NmMyMDdkZjYxNjBj
MmFjZTAxMjg0NWIzOWJkYzg3NmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9TaW1wbGVGb250RGF0YVNraWEuY3BwCkBAIC0yNDIs
NiArMjQyLDggQEAgZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaChH
bHlwaCBnbHlwaCkgY29uc3QKICAgICBTa1BhaW50IHBhaW50OwogCiAgICAgbV9wbGF0Zm9ybURh
dGEuc2V0dXBQYWludCgmcGFpbnQpOworICAgIGlmIChwbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlv
bigpID09IFZlcnRpY2FsICYmIG1faXNCcm9rZW5JZGVvZ3JhcGhGYWxsYmFjaykKKyAgICAgICAg
cGFpbnQuc2V0VmVydGljYWxUZXh0KGZhbHNlKTsKIAogICAgIHBhaW50LnNldFRleHRFbmNvZGlu
ZyhTa1BhaW50OjprR2x5cGhJRF9UZXh0RW5jb2RpbmcpOwogICAgIFNrU2NhbGFyIHdpZHRoID0g
cGFpbnQubWVhc3VyZVRleHQoJmdseXBoLCAyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166086</attachid>
            <date>2012-09-27 16:06:20 -0700</date>
            <delta_ts>2012-09-27 16:51:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-97676-20120928080537.patch</filename>
            <type>text/plain</type>
            <size>10759</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM1NWZiZTUwYjU1OThm
ZTRiYTYxN2VhNzliYmQ3OWI5ZGVhNjUyNi4uMmU2MjUyMWNlNTIyMDQ5ZThiZDUyOWNiZGE1OWIy
YjFiOGM4Mzc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA5LTI3ICBLZW5p
Y2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1d
IEZvbnRIYXJmQnV6ei5jcHAgc2hvdWxkIG5vdCB1c2UgZHJhd1RleHRPblBhdGgoKS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3Njc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICBVc2UgZHJhd1Bvc1RleHQoKSBp
ZiBwb3NzaWJsZSBmb3IgdmVydGljYWwgdGV4dC4KKyAgICAgICAgVXNlIGRyYXdUZXh0T25QYXRo
KCkgb25seSBpZiB0aGUgZm9udCBkb2Vzbid0IGhhdmUgdmhlYS92bXR4IHRhYmxlLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yIG9uIExheW91dFRlc3RzLgor
ICAgICAgICBDb25maXJtZWQgaW1wcm92ZW1lbnQgaW4gdmVydGljYWwgdGV4dCBwb3NpdGlvbmlu
ZyB1c2luZyBpcGFmb250IGFuZCBTa2lhIHI1Njc3LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFyZmJ1enovRm9udEhhcmZCdXp6LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdW
ZXJ0aWNhbFRleHRXaXRoQnJva2VuSWRlb2dyYXBocyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhzKTogRHJhdyB2ZXJ0aWNhbCB0
ZXh0IGJ5IGRyYXdQb3NUZXh0KCkgaW4gYSBzaW1pbGFyIG1hbm5lciBvZiBGb250U2tpYS5jcHAu
CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRleHQpOiBEaXNhYmxlIHNldFZl
cnRpY2FsVGV4dCgpLiBDb21wbGV4IHBhdGggZG9lc24ndCBzdXBwb3J0IGl0IG5vdy4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enou
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6c2V0dXBQYWludCk6IENh
bGwgc2V0VmVydGlhbFRleHQoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Np
bXBsZUZvbnREYXRhU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1XaWR0aEZvckdseXBoKTogRGlzYWJsZSBzZXRWZXJ0aWNhbFRleHQoKSBpZiB0aGUg
Zm9udCBkb2Vzbid0IGhhdmUgdmVydGljYWwgbWV0cmljcy4KKwogMjAxMi0wOS0yNyAgTWFyayBQ
aWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXVtNYWNd
IE1vdmUgTWFjLXNwZWNpZmljIHRoZW1lIGZ1bmN0aW9ucyBvdXQgb2YgUGxhdGZvcm1TdXBwb3J0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9G
b250SGFyZkJ1enouY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1
enovRm9udEhhcmZCdXp6LmNwcAppbmRleCA5N2FkZDYyMjVhMjYzZjNhODI4ZGJiOTkyNGYyNjNm
NzA4NjljMjZkLi41Mzc2NTZhZjkzNzE5MTQ5ZGM0ZTJlOTcyZGI2NGUwNTE3ZmQyZGQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250SGFy
ZkJ1enouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0ZvbnRIYXJmQnV6ei5jcHAKQEAgLTY1LDE1ICs2NSw4MSBAQCBib29sIEZvbnQ6OmNhbkV4cGFu
ZEFyb3VuZElkZW9ncmFwaHNJbkNvbXBsZXhUZXh0KCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K3N0YXRpYyB2b2lkIGRyYXdWZXJ0aWNhbFRleHRXaXRoQnJva2VuSWRlb2dyYXBocyhHcmFwaGlj
c0NvbnRleHQqIGdjLCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udCwgY29uc3QgR2x5cGhCdWZm
ZXImIGdseXBoQnVmZmVyLCBpbnQgZnJvbSwgaW50IG51bUdseXBocywgY29uc3QgRmxvYXRQb2lu
dCYgcG9pbnQpCit7CisgICAgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBhZHYgPSBnbHlwaEJ1
ZmZlci5hZHZhbmNlcyhmcm9tKTsKKyAgICBWZWN0b3I8U2tQb2ludCwgMzI+IGJlZ2luUG9pbnRz
KG51bUdseXBocyk7CisgICAgVmVjdG9yPFNrUG9pbnQsIDMyPiBlbmRQb2ludHMobnVtR2x5cGhz
KTsKKyAgICBTa1NjYWxhciB4ID0gU2tGbG9hdFRvU2NhbGFyKHBvaW50LngoKSk7CisgICAgU2tT
Y2FsYXIgeSA9IFNrRmxvYXRUb1NjYWxhcihwb2ludC55KCkpOworCisgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBudW1HbHlwaHM7ICsraSkgeworICAgICAgICBTa1NjYWxhciB3aWR0aCA9IFNrRmxv
YXRUb1NjYWxhcihhZHZbMF0ud2lkdGgoKSk7CisgICAgICAgIGJlZ2luUG9pbnRzW2ldLnNldCh4
ICsgd2lkdGgsIHkpOworICAgICAgICBlbmRQb2ludHNbaV0uc2V0KHggKyB3aWR0aCwgeSAtIHdp
ZHRoKTsKKyAgICAgICAgeCArPSBTa0Zsb2F0VG9TY2FsYXIod2lkdGgpOworICAgICAgICB5ICs9
IFNrRmxvYXRUb1NjYWxhcihhZHZbaV0uaGVpZ2h0KCkpOworICAgIH0KKworICAgIFNrQ2FudmFz
KiBjYW52YXMgPSBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpOworICAgIGNvbnN0IEds
eXBoQnVmZmVyR2x5cGgqIGdseXBocyA9IGdseXBoQnVmZmVyLmdseXBocyhmcm9tKTsKKyAgICBU
ZXh0RHJhd2luZ01vZGVGbGFncyB0ZXh0TW9kZSA9IGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Z2V0
VGV4dERyYXdpbmdNb2RlKCk7CisKKyAgICBpZiAodGV4dE1vZGUgJiBUZXh0TW9kZUZpbGwpIHsK
KyAgICAgICAgU2tQYWludCBwYWludDsKKyAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5z
ZXR1cFBhaW50Rm9yRmlsbGluZygmcGFpbnQpOworICAgICAgICBmb250LT5wbGF0Zm9ybURhdGEo
KS5zZXR1cFBhaW50KCZwYWludCk7CisgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+YWRq
dXN0VGV4dFJlbmRlck1vZGUoJnBhaW50KTsKKyAgICAgICAgcGFpbnQuc2V0VGV4dEVuY29kaW5n
KFNrUGFpbnQ6OmtHbHlwaElEX1RleHRFbmNvZGluZyk7CisKKyAgICAgICAgU2tQYXRoIHBhdGg7
CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtR2x5cGhzOyArK2kpIHsKKyAgICAgICAg
ICAgIHBhdGgucmVzZXQoKTsKKyAgICAgICAgICAgIHBhdGgubW92ZVRvKGJlZ2luUG9pbnRzW2ld
KTsKKyAgICAgICAgICAgIHBhdGgubGluZVRvKGVuZFBvaW50c1tpXSk7CisgICAgICAgICAgICBj
YW52YXMtPmRyYXdUZXh0T25QYXRoKGdseXBocyArIGksIHNpemVvZihHbHlwaEJ1ZmZlckdseXBo
KSwgcGF0aCwgMCwgcGFpbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCh0ZXh0TW9k
ZSAmIFRleHRNb2RlU3Ryb2tlKQorICAgICAgICAmJiBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmdl
dFN0cm9rZVN0eWxlKCkgIT0gTm9TdHJva2UKKyAgICAgICAgJiYgZ2MtPnBsYXRmb3JtQ29udGV4
dCgpLT5nZXRTdHJva2VUaGlja25lc3MoKSA+IDApIHsKKyAgICAgICAgU2tQYWludCBwYWludDsK
KyAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yU3Ryb2tpbmcoJnBh
aW50LCAwLCAwKTsKKyAgICAgICAgZm9udC0+cGxhdGZvcm1EYXRhKCkuc2V0dXBQYWludCgmcGFp
bnQpOworICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmFkanVzdFRleHRSZW5kZXJNb2Rl
KCZwYWludCk7CisgICAgICAgIHBhaW50LnNldFRleHRFbmNvZGluZyhTa1BhaW50OjprR2x5cGhJ
RF9UZXh0RW5jb2RpbmcpOworCisgICAgICAgIGlmICh0ZXh0TW9kZSAmIFRleHRNb2RlRmlsbCkK
KyAgICAgICAgICAgIHBhaW50LnNldExvb3BlcigwKTsKKworICAgICAgICBTa1BhdGggcGF0aDsK
KyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1HbHlwaHM7ICsraSkgeworICAgICAgICAg
ICAgcGF0aC5yZXNldCgpOworICAgICAgICAgICAgcGF0aC5tb3ZlVG8oYmVnaW5Qb2ludHNbaV0p
OworICAgICAgICAgICAgcGF0aC5saW5lVG8oZW5kUG9pbnRzW2ldKTsKKyAgICAgICAgICAgIGNh
bnZhcy0+ZHJhd1RleHRPblBhdGgoZ2x5cGhzICsgaSwgc2l6ZW9mKEdseXBoQnVmZmVyR2x5cGgp
LCBwYXRoLCAwLCBwYWludCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgRm9udDo6ZHJh
d0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udCwK
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsICBp
bnQgZnJvbSwgaW50IG51bUdseXBocywKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9h
dFBvaW50JiBwb2ludCkgY29uc3QgewogICAgIFNrQVNTRVJUKHNpemVvZihHbHlwaEJ1ZmZlckds
eXBoKSA9PSBzaXplb2YodWludDE2X3QpKTsgLy8gY29tcGlsZS10aW1lIGFzc2VydAogCi0gICAg
Y29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzID0gZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20p
OworICAgIGJvb2wgaXNWZXJ0aWNhbCA9IGZvbnQtPnBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9u
KCkgPT0gVmVydGljYWw7CiAgICAgU2tTY2FsYXIgeCA9IFNrRmxvYXRUb1NjYWxhcihwb2ludC54
KCkpOwogICAgIFNrU2NhbGFyIHkgPSBTa0Zsb2F0VG9TY2FsYXIocG9pbnQueSgpKTsKIAorICAg
IGlmIChpc1ZlcnRpY2FsKSB7CisgICAgICAgIGlmICghZm9udC0+aGFzVmVydGljYWxHbHlwaHMo
KSkgeworICAgICAgICAgICAgZHJhd1ZlcnRpY2FsVGV4dFdpdGhCcm9rZW5JZGVvZ3JhcGhzKGdj
LCBmb250LCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5cGhzLCBwb2ludCk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgeSArPSBTa0Zsb2F0VG9TY2FsYXIoZm9udC0+
Zm9udE1ldHJpY3MoKS5mbG9hdEFzY2VudChJZGVvZ3JhcGhpY0Jhc2VsaW5lKSAtIGZvbnQtPmZv
bnRNZXRyaWNzKCkuZmxvYXRBc2NlbnQoKSk7CisgICAgfQorCiAgICAgLy8gRklYTUU6IHRleHQg
cmVuZGVyaW5nIHNwZWVkOgogICAgIC8vIEFuZHJvaWQgaGFzIGNvZGUgaW4gdGhlaXIgV2ViQ29y
ZSBmb3JrIHRvIHNwZWNpYWwgY2FzZSB3aGVuIHRoZQogICAgIC8vIEdseXBoQnVmZmVyIGhhcyBu
byBhZHZhbmNlcyBvdGhlciB0aGFuIHRoZSBkZWZhdWx0cy4gSW4gdGhhdCBjYXNlIHRoZQpAQCAt
ODEsMjQgKzE0NywyNSBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBn
YywgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsCiAgICAgLy8gcGF0Y2hlcyBtYXkgYmUgdXBz
dHJlYW1lZCB0byBXZWJLaXQgc28gd2UgYWx3YXlzIHVzZSB0aGUgc2xvd2VyIHBhdGgKICAgICAv
LyBoZXJlLgogICAgIGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSogYWR2ID0gZ2x5cGhCdWZmZXIu
YWR2YW5jZXMoZnJvbSk7Ci0gICAgU2tBdXRvU1RNYWxsb2M8MzIsIFNrUG9pbnQ+IHN0b3JhZ2Uo
bnVtR2x5cGhzKSwgc3RvcmFnZTIobnVtR2x5cGhzKSwgc3RvcmFnZTMobnVtR2x5cGhzKTsKKyAg
ICBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMgPSBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJv
bSk7CisgICAgU2tBdXRvU1RNYWxsb2M8MzIsIFNrUG9pbnQ+IHN0b3JhZ2UobnVtR2x5cGhzKTsK
ICAgICBTa1BvaW50KiBwb3MgPSBzdG9yYWdlLmdldCgpOwotICAgIFNrUG9pbnQqIHZQb3NCZWdp
biA9IHN0b3JhZ2UyLmdldCgpOwotICAgIFNrUG9pbnQqIHZQb3NFbmQgPSBzdG9yYWdlMy5nZXQo
KTsKIAotICAgIGJvb2wgaXNWZXJ0aWNhbCA9IGZvbnQtPnBsYXRmb3JtRGF0YSgpLm9yaWVudGF0
aW9uKCkgPT0gVmVydGljYWw7CisgICAgU2tDYW52YXMqIGNhbnZhcyA9IGdjLT5wbGF0Zm9ybUNv
bnRleHQoKS0+Y2FudmFzKCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1HbHlwaHM7IGkr
KykgewotICAgICAgICBTa1NjYWxhciBteVdpZHRoID0gU2tGbG9hdFRvU2NhbGFyKGFkdltpXS53
aWR0aCgpKTsKICAgICAgICAgcG9zW2ldLnNldCh4LCB5KTsKLSAgICAgICAgaWYgKGlzVmVydGlj
YWwpIHsKLSAgICAgICAgICAgIHZQb3NCZWdpbltpXS5zZXQoeCArIG15V2lkdGgsIHkpOwotICAg
ICAgICAgICAgdlBvc0VuZFtpXS5zZXQoeCArIG15V2lkdGgsIHkgLSBteVdpZHRoKTsKLSAgICAg
ICAgfQotICAgICAgICB4ICs9IG15V2lkdGg7CisgICAgICAgIHggKz0gU2tGbG9hdFRvU2NhbGFy
KGFkdltpXS53aWR0aCgpKTsKICAgICAgICAgeSArPSBTa0Zsb2F0VG9TY2FsYXIoYWR2W2ldLmhl
aWdodCgpKTsKICAgICB9CisgICAgaWYgKGlzVmVydGljYWwpIHsKKyAgICAgICAgY2FudmFzLT5z
YXZlKCk7CisgICAgICAgIGNhbnZhcy0+cm90YXRlKC05MCk7CisgICAgICAgIFNrTWF0cml4IHJv
dGF0b3I7CisgICAgICAgIHJvdGF0b3IucmVzZXQoKTsKKyAgICAgICAgcm90YXRvci5zZXRSb3Rh
dGUoOTApOworICAgICAgICByb3RhdG9yLm1hcFBvaW50cyhwb3MsIG51bUdseXBocyk7CisgICAg
fQogCi0gICAgU2tDYW52YXMqIGNhbnZhcyA9IGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFz
KCk7CiAgICAgVGV4dERyYXdpbmdNb2RlRmxhZ3MgdGV4dE1vZGUgPSBnYy0+cGxhdGZvcm1Db250
ZXh0KCktPmdldFRleHREcmF3aW5nTW9kZSgpOwogCiAgICAgLy8gV2UgZHJhdyB0ZXh0IHVwIHRv
IHR3byB0aW1lcyAob25jZSBmb3IgZmlsbCwgb25jZSBmb3Igc3Ryb2tlKS4KQEAgLTEwOSwxNiAr
MTc2LDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0
IFNpbXBsZUZvbnREYXRhKiBmb250LAogICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmFk
anVzdFRleHRSZW5kZXJNb2RlKCZwYWludCk7CiAgICAgICAgIHBhaW50LnNldFRleHRFbmNvZGlu
ZyhTa1BhaW50OjprR2x5cGhJRF9UZXh0RW5jb2RpbmcpOwogCi0gICAgICAgIGlmIChpc1ZlcnRp
Y2FsKSB7Ci0gICAgICAgICAgICBTa1BhdGggcGF0aDsKLSAgICAgICAgICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgbnVtR2x5cGhzOyArK2kpIHsKLSAgICAgICAgICAgICAgICBwYXRoLnJlc2V0KCk7
Ci0gICAgICAgICAgICAgICAgcGF0aC5tb3ZlVG8odlBvc0JlZ2luW2ldKTsKLSAgICAgICAgICAg
ICAgICBwYXRoLmxpbmVUbyh2UG9zRW5kW2ldKTsKLSAgICAgICAgICAgICAgICBjYW52YXMtPmRy
YXdUZXh0T25QYXRoKGdseXBocyArIGksIDIsIHBhdGgsIDAsIHBhaW50KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBjYW52YXMtPmRyYXdQb3NUZXh0KGdseXBo
cywgbnVtR2x5cGhzIDw8IDEsIHBvcywgcGFpbnQpOworICAgICAgICBjYW52YXMtPmRyYXdQb3NU
ZXh0KGdseXBocywgbnVtR2x5cGhzIDw8IDEsIHBvcywgcGFpbnQpOwogICAgIH0KIAogICAgIGlm
ICgodGV4dE1vZGUgJiBUZXh0TW9kZVN0cm9rZSkKQEAgLTEzOCwxNyArMTk2LDEwIEBAIHZvaWQg
Rm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBTaW1wbGVGb250RGF0
YSogZm9udCwKICAgICAgICAgICAgIHBhaW50LnNldExvb3BlcigwKTsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmIChpc1ZlcnRpY2FsKSB7Ci0gICAgICAgICAgICBTa1BhdGggcGF0aDsKLSAgICAg
ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtR2x5cGhzOyArK2kpIHsKLSAgICAgICAgICAg
ICAgICBwYXRoLnJlc2V0KCk7Ci0gICAgICAgICAgICAgICAgcGF0aC5tb3ZlVG8odlBvc0JlZ2lu
W2ldKTsKLSAgICAgICAgICAgICAgICBwYXRoLmxpbmVUbyh2UG9zRW5kW2ldKTsKLSAgICAgICAg
ICAgICAgICBjYW52YXMtPmRyYXdUZXh0T25QYXRoKGdseXBocyArIGksIDIsIHBhdGgsIDAsIHBh
aW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBjYW52YXMt
PmRyYXdQb3NUZXh0KGdseXBocywgbnVtR2x5cGhzIDw8IDEsIHBvcywgcGFpbnQpOworICAgICAg
ICBjYW52YXMtPmRyYXdQb3NUZXh0KGdseXBocywgbnVtR2x5cGhzIDw8IDEsIHBvcywgcGFpbnQp
OwogICAgIH0KKyAgICBpZiAoaXNWZXJ0aWNhbCkKKyAgICAgICAgY2FudmFzLT5yZXN0b3JlKCk7
CiB9CiAKIHN0YXRpYyB2b2lkIHNldHVwRm9yVGV4dFBhaW50aW5nKFNrUGFpbnQqIHBhaW50LCBT
a0NvbG9yIGNvbG9yKQpAQCAtMjA1LDEyICsyNTYsMTUgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxl
eFRleHQoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgVGV4dFJ1biYgcnVuLAogCiAgICAgICAg
IGlmIChmaWxsKSB7CiAgICAgICAgICAgICBjb250cm9sbGVyLmZvbnRQbGF0Zm9ybURhdGFGb3JT
Y3JpcHRSdW4oKS0+c2V0dXBQYWludCgmZmlsbFBhaW50KTsKKyAgICAgICAgICAgIC8vIEZJWE1F
OiBDb21wbGV4IHRleHQgZG9lbid0IHN1cHBvcnQgdmVydGljYWwgdGV4dC4KKyAgICAgICAgICAg
IGZpbGxQYWludC5zZXRWZXJ0aWNhbFRleHQoZmFsc2UpOwogICAgICAgICAgICAgZ2MtPnBsYXRm
b3JtQ29udGV4dCgpLT5hZGp1c3RUZXh0UmVuZGVyTW9kZSgmZmlsbFBhaW50KTsKICAgICAgICAg
ICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHQoY29udHJvbGxlci5nbHlwaHMoKSArIGZyb21HbHlwaCwg
Z2x5cGhMZW5ndGggPDwgMSwgY29udHJvbGxlci5wb3NpdGlvbnMoKSArIGZyb21HbHlwaCwgZmls
bFBhaW50KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChzdHJva2UpIHsKICAgICAgICAgICAg
IGNvbnRyb2xsZXIuZm9udFBsYXRmb3JtRGF0YUZvclNjcmlwdFJ1bigpLT5zZXR1cFBhaW50KCZz
dHJva2VQYWludCk7CisgICAgICAgICAgICBmaWxsUGFpbnQuc2V0VmVydGljYWxUZXh0KGZhbHNl
KTsKICAgICAgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+YWRqdXN0VGV4dFJlbmRlck1v
ZGUoJnN0cm9rZVBhaW50KTsKICAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHQoY29udHJv
bGxlci5nbHlwaHMoKSArIGZyb21HbHlwaCwgZ2x5cGhMZW5ndGggPDwgMSwgY29udHJvbGxlci5w
b3NpdGlvbnMoKSArIGZyb21HbHlwaCwgc3Ryb2tlUGFpbnQpOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250UGxhdGZv
cm1EYXRhSGFyZkJ1enouY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFy
ZmJ1enovRm9udFBsYXRmb3JtRGF0YUhhcmZCdXp6LmNwcAppbmRleCAyZDllODZhMzVmNzQ0NmRk
N2UwZDBlZTFiNjU3OWJlYTEzZDhjZjQ1Li5jYmE1ZmI0NWMxZjE0Y2QxZDk4OWFmNjJkNTgwOGE2
YzMyMWNkZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9o
YXJmYnV6ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6ei5jcHAK
QEAgLTIzMCw2ICsyMzAsNyBAQCB2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnNldHVwUGFpbnQoU2tQ
YWludCogcGFpbnQpIGNvbnN0CiAgICAgcGFpbnQtPnNldFR5cGVmYWNlKG1fdHlwZWZhY2UpOwog
ICAgIHBhaW50LT5zZXRGYWtlQm9sZFRleHQobV9mYWtlQm9sZCk7CiAgICAgcGFpbnQtPnNldFRl
eHRTa2V3WChtX2Zha2VJdGFsaWMgPyAtU0tfU2NhbGFyMSAvIDQgOiAwKTsKKyAgICBwYWludC0+
c2V0VmVydGljYWxUZXh0KG1fb3JpZW50YXRpb24gPT0gVmVydGljYWwpOwogfQogCiBTa0ZvbnRJ
RCBGb250UGxhdGZvcm1EYXRhOjp1bmlxdWVJRCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5j
cHAKaW5kZXggNTQ0ODZjM2FhNGU2OTQ4MzE1ODBhOTIyOTU2NTkwMGVjZjA3YzA4Ny4uODJmNjBk
ODZjMjA3ZGY2MTYwYzJhY2UwMTI4NDViMzliZGM4NzZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9TaW1wbGVGb250RGF0YVNraWEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvU2ltcGxlRm9udERhdGFTa2lh
LmNwcApAQCAtMjQyLDYgKzI0Miw4IEBAIGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdp
ZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAgICAgU2tQYWludCBwYWludDsKIAogICAg
IG1fcGxhdGZvcm1EYXRhLnNldHVwUGFpbnQoJnBhaW50KTsKKyAgICBpZiAocGxhdGZvcm1EYXRh
KCkub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbCAmJiBtX2lzQnJva2VuSWRlb2dyYXBoRmFsbGJh
Y2spCisgICAgICAgIHBhaW50LnNldFZlcnRpY2FsVGV4dChmYWxzZSk7CiAKICAgICBwYWludC5z
ZXRUZXh0RW5jb2RpbmcoU2tQYWludDo6a0dseXBoSURfVGV4dEVuY29kaW5nKTsKICAgICBTa1Nj
YWxhciB3aWR0aCA9IHBhaW50Lm1lYXN1cmVUZXh0KCZnbHlwaCwgMik7Cg==
</data>
<flag name="commit-queue"
          id="178305"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>