<?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>62137</bug_id>
          
          <creation_ts>2011-06-06 11:55:34 -0700</creation_ts>
          <short_desc>Switch paintOutline, paintContinuationOutlines, and paintOutlineForLine to use IntPoint</short_desc>
          <delta_ts>2011-06-06 15:52:42 -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>Layout and Rendering</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>
          
          <blocked>60318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>darin</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>415930</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-06-06 11:55:34 -0700</bug_when>
    <thetext>Ongoing tx/ty removal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415936</commentid>
    <comment_count>1</comment_count>
      <attachid>96107</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-06-06 12:15:20 -0700</bug_when>
    <thetext>Created attachment 96107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415937</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-06 12:16:56 -0700</bug_when>
    <thetext>Attachment 96107 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/rendering/RenderInline.cpp:1435:  l is incorrectly named. Don&apos;t use the single letter &apos;l&apos; as an identifier name.  [readability/naming] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415985</commentid>
    <comment_count>3</comment_count>
      <attachid>96107</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-06 13:57:43 -0700</bug_when>
    <thetext>Comment on attachment 96107
Patch

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:2681
&gt; +        for ( ; block &amp;&amp; block != this; block = block-&gt;containingBlock())
&gt; +            accumulatedPaintOffset.move(block-&gt;location());

Really?  We don&apos;t have a function to accumulate these for us?  We should as smfr if this is the modern way to do this.  I suspect there may be a bug here.

&gt; Source/WebCore/rendering/RenderInline.cpp:1503
&gt; +                   (!nextline.isEmpty() &amp;&amp; l - ow &lt; paintOffset.x() + nextline.maxX()) ? -ow : ow,

Obviously there is a bunch of cleanup we could do to this function in a second pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415993</commentid>
    <comment_count>4</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-06-06 14:11:54 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 96107 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=96107&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:2681
&gt; &gt; +        for ( ; block &amp;&amp; block != this; block = block-&gt;containingBlock())
&gt; &gt; +            accumulatedPaintOffset.move(block-&gt;location());
&gt; 
&gt; Really?  We don&apos;t have a function to accumulate these for us?  We should as smfr if this is the modern way to do this.  I suspect there may be a bug here.

This surprised me too... Given all the discussion of how we arrive at tx/ty, this seems way too simplistic. I&apos;d love a comment from smfr before landing as a sanity check.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderInline.cpp:1503
&gt; &gt; +                   (!nextline.isEmpty() &amp;&amp; l - ow &lt; paintOffset.x() + nextline.maxX()) ? -ow : ow,
&gt; 
&gt; Obviously there is a bunch of cleanup we could do to this function in a second pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415999</commentid>
    <comment_count>5</comment_count>
      <attachid>96107</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-06 14:16:11 -0700</bug_when>
    <thetext>Comment on attachment 96107
Patch

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:2530
&gt; +                inlineRenderer-&gt;paintOutline(paintInfo.context,  paintOffset - locationOffset() + inlineRenderer-&gt;containingBlock()-&gt;location());

You have two spaces after the first comma

&gt;&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:2681
&gt;&gt;&gt; +            accumulatedPaintOffset.move(block-&gt;location());
&gt;&gt; 
&gt;&gt; Really?  We don&apos;t have a function to accumulate these for us?  We should as smfr if this is the modern way to do this.  I suspect there may be a bug here.
&gt; 
&gt; This surprised me too... Given all the discussion of how we arrive at tx/ty, this seems way too simplistic. I&apos;d love a comment from smfr before landing as a sanity check.

Yeah, I would expect a mapLocalToContainer() call here or something similar. OK to just convert now, since you&apos;re not changing behavior.

&gt;&gt; Source/WebCore/rendering/RenderInline.cpp:1435
&gt;&gt; +    int l = paintOffset.x() + thisline.x() - offset;
&gt; 
&gt; l is incorrectly named. Don&apos;t use the single letter &apos;l&apos; as an identifier name.  [readability/naming] [4]

Yeah, feel free to rename the variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416011</commentid>
    <comment_count>6</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-06-06 14:35:01 -0700</bug_when>
    <thetext>I&apos;ll file another bug for the cleanup of this function and do it separately. Thanks for looking!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416012</commentid>
    <comment_count>7</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-06-06 14:36:03 -0700</bug_when>
    <thetext>Committed r88190: &lt;http://trac.webkit.org/changeset/88190&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416083</commentid>
    <comment_count>8</comment_count>
      <attachid>96107</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-06-06 15:52:42 -0700</bug_when>
    <thetext>Comment on attachment 96107
Patch

Clearing flags</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96107</attachid>
            <date>2011-06-06 12:15:20 -0700</date>
            <delta_ts>2011-06-06 15:52:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62137-20110606121518.patch</filename>
            <type>text/plain</type>
            <size>11329</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MTc3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDYtMDYgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN3aXRjaCBwYWludE91dGxpbmUsIHBhaW50Q29udGludWF0
aW9uT3V0bGluZXMsIGFuZCBwYWludE91dGxpbmVGb3JMaW5lIHRvIHVzZSBJbnRQb2ludAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxMzcKKworICAg
ICAgICBTd2l0Y2hpbmcgcGFpbnRPdXRsaW5lLCBwYWludENvbnRpbnVhdGlvbk91dGxpbmVzLCBh
bmQgcGFpbnRPdXRsaW5lRm9yTGluZSB0byB0YWtlIGFuIEludFBvaW50CisgICAgICAgIHJlcHJl
c2VudGluZyB0aGUgcGFpbnQgb2Zmc2V0IGluc3RlYWQgb2YgYSBwYWlyIG9mIGludHMuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIGFzIHRoaXMgaXMgc2ltcGxlIHJlZmFjdG9yaW5nLgorCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpwYWludE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFp
bnRDb250aW51YXRpb25PdXRsaW5lcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJJbmxpbmU6OnBhaW50T3V0bGluZUZvckxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGluZUJveExpc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGluZUJveExpc3Q6OnBhaW50KToKKwogMjAxMS0wNi0w
NiAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAJKHJldmlzaW9uIDg4MTcyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUyNywxMCArMjUyNyw5IEBAIHZvaWQg
UmVuZGVyQmxvY2s6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYKICAgICAgICAgICAgIGlmICghaW5s
aW5lRW5jbG9zZWRJblNlbGZQYWludGluZ0xheWVyKQogICAgICAgICAgICAgICAgIGNiLT5hZGRD
b250aW51YXRpb25XaXRoT3V0bGluZShpbmxpbmVSZW5kZXJlcik7CiAgICAgICAgICAgICBlbHNl
IGlmICghaW5saW5lUmVuZGVyZXItPmZpcnN0TGluZUJveCgpKQotICAgICAgICAgICAgICAgIGlu
bGluZVJlbmRlcmVyLT5wYWludE91dGxpbmUocGFpbnRJbmZvLmNvbnRleHQsIHBhaW50T2Zmc2V0
LngoKSAtIHgoKSArIGlubGluZVJlbmRlcmVyLT5jb250YWluaW5nQmxvY2soKS0+eCgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFpbnRPZmZzZXQueSgp
IC0geSgpICsgaW5saW5lUmVuZGVyZXItPmNvbnRhaW5pbmdCbG9jaygpLT55KCkpOworICAgICAg
ICAgICAgICAgIGlubGluZVJlbmRlcmVyLT5wYWludE91dGxpbmUocGFpbnRJbmZvLmNvbnRleHQs
ICBwYWludE9mZnNldCAtIGxvY2F0aW9uT2Zmc2V0KCkgKyBpbmxpbmVSZW5kZXJlci0+Y29udGFp
bmluZ0Jsb2NrKCktPmxvY2F0aW9uKCkpOwogICAgICAgICB9Ci0gICAgICAgIHBhaW50Q29udGlu
dWF0aW9uT3V0bGluZXMocGFpbnRJbmZvLCBwYWludE9mZnNldC54KCksIHBhaW50T2Zmc2V0Lnko
KSk7CisgICAgICAgIHBhaW50Q29udGludWF0aW9uT3V0bGluZXMocGFpbnRJbmZvLCBwYWludE9m
ZnNldCk7CiAgICAgfQogCiAgICAgLy8gNy4gcGFpbnQgY2FyZXQuCkBAIC0yNjYxLDcgKzI2NjAs
NyBAQCBib29sIFJlbmRlckJsb2NrOjpwYWludHNDb250aW51YXRpb25PdXRsCiAgICAgcmV0dXJu
IGNvbnRpbnVhdGlvbnMtPmNvbnRhaW5zKGZsb3cpOwogfQogCi12b2lkIFJlbmRlckJsb2NrOjpw
YWludENvbnRpbnVhdGlvbk91dGxpbmVzKFBhaW50SW5mbyYgaW5mbywgaW50IHR4LCBpbnQgdHkp
Cit2b2lkIFJlbmRlckJsb2NrOjpwYWludENvbnRpbnVhdGlvbk91dGxpbmVzKFBhaW50SW5mbyYg
aW5mbywgY29uc3QgSW50UG9pbnQmIHBhaW50T2Zmc2V0KQogewogICAgIENvbnRpbnVhdGlvbk91
dGxpbmVUYWJsZU1hcCogdGFibGUgPSBjb250aW51YXRpb25PdXRsaW5lVGFibGUoKTsKICAgICBp
ZiAodGFibGUtPmlzRW1wdHkoKSkKQEAgLTI2NzAsMTkgKzI2NjksMTggQEAgdm9pZCBSZW5kZXJC
bG9jazo6cGFpbnRDb250aW51YXRpb25PdXRsaQogICAgIExpc3RIYXNoU2V0PFJlbmRlcklubGlu
ZSo+KiBjb250aW51YXRpb25zID0gdGFibGUtPmdldCh0aGlzKTsKICAgICBpZiAoIWNvbnRpbnVh
dGlvbnMpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKKyAgICBJbnRQb2ludCBhY2N1bXVs
YXRlZFBhaW50T2Zmc2V0ID0gcGFpbnRPZmZzZXQ7CiAgICAgLy8gUGFpbnQgZWFjaCBjb250aW51
YXRpb24gb3V0bGluZS4KICAgICBMaXN0SGFzaFNldDxSZW5kZXJJbmxpbmUqPjo6aXRlcmF0b3Ig
ZW5kID0gY29udGludWF0aW9ucy0+ZW5kKCk7CiAgICAgZm9yIChMaXN0SGFzaFNldDxSZW5kZXJJ
bmxpbmUqPjo6aXRlcmF0b3IgaXQgPSBjb250aW51YXRpb25zLT5iZWdpbigpOyBpdCAhPSBlbmQ7
ICsraXQpIHsKICAgICAgICAgLy8gTmVlZCB0byBhZGQgaW4gdGhlIGNvb3JkaW5hdGVzIG9mIHRo
ZSBpbnRlcnZlbmluZyBibG9ja3MuCiAgICAgICAgIFJlbmRlcklubGluZSogZmxvdyA9ICppdDsK
ICAgICAgICAgUmVuZGVyQmxvY2sqIGJsb2NrID0gZmxvdy0+Y29udGFpbmluZ0Jsb2NrKCk7Ci0g
ICAgICAgIGZvciAoIDsgYmxvY2sgJiYgYmxvY2sgIT0gdGhpczsgYmxvY2sgPSBibG9jay0+Y29u
dGFpbmluZ0Jsb2NrKCkpIHsKLSAgICAgICAgICAgIHR4ICs9IGJsb2NrLT54KCk7Ci0gICAgICAg
ICAgICB0eSArPSBibG9jay0+eSgpOwotICAgICAgICB9CisgICAgICAgIGZvciAoIDsgYmxvY2sg
JiYgYmxvY2sgIT0gdGhpczsgYmxvY2sgPSBibG9jay0+Y29udGFpbmluZ0Jsb2NrKCkpCisgICAg
ICAgICAgICBhY2N1bXVsYXRlZFBhaW50T2Zmc2V0Lm1vdmUoYmxvY2stPmxvY2F0aW9uKCkpOwog
ICAgICAgICBBU1NFUlQoYmxvY2spOyAgIAotICAgICAgICBmbG93LT5wYWludE91dGxpbmUoaW5m
by5jb250ZXh0LCB0eCwgdHkpOworICAgICAgICBmbG93LT5wYWludE91dGxpbmUoaW5mby5jb250
ZXh0LCBhY2N1bXVsYXRlZFBhaW50T2Zmc2V0KTsKICAgICB9CiAgICAgCiAgICAgLy8gRGVsZXRl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkocmV2aXNpb24gODgx
NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkod29ya2luZyBj
b3B5KQpAQCAtNjMyLDcgKzYzMiw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgZGVzaXJlZENv
bHVtbkNvdW50KCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZXNpcmVkQ29sdW1uQ291bnRBbmRXaWR0
aChpbnQgY291bnQsIGludCB3aWR0aCk7CiAKLSAgICB2b2lkIHBhaW50Q29udGludWF0aW9uT3V0
bGluZXMoUGFpbnRJbmZvJiwgaW50IHR4LCBpbnQgdHkpOworICAgIHZvaWQgcGFpbnRDb250aW51
YXRpb25PdXRsaW5lcyhQYWludEluZm8mLCBjb25zdCBJbnRQb2ludCYpOwogCiAgICAgdmlydHVh
bCBJbnRSZWN0IGxvY2FsQ2FyZXRSZWN0KElubGluZUJveCosIGludCBjYXJldE9mZnNldCwgaW50
KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUgPSAwKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHJldmlzaW9uIDg4MTcyKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNjYsNyAr
MTM2Niw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjphZGRGb2N1c1JpbmdSZWN0cyhWZWMKICAgICB9
CiB9CiAKLXZvaWQgUmVuZGVySW5saW5lOjpwYWludE91dGxpbmUoR3JhcGhpY3NDb250ZXh0KiBn
cmFwaGljc0NvbnRleHQsIGludCB0eCwgaW50IHR5KQordm9pZCBSZW5kZXJJbmxpbmU6OnBhaW50
T3V0bGluZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgSW50UG9pbnQm
IHBhaW50T2Zmc2V0KQogewogICAgIGlmICghaGFzT3V0bGluZSgpKQogICAgICAgICByZXR1cm47
CkBAIC0xMzc1LDcgKzEzNzUsNyBAQCB2b2lkIFJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lKEdy
YXBoaWNzCiAgICAgaWYgKHN0eWxlVG9Vc2UtPm91dGxpbmVTdHlsZUlzQXV0bygpIHx8IGhhc091
dGxpbmVBbm5vdGF0aW9uKCkpIHsKICAgICAgICAgaWYgKCF0aGVtZSgpLT5zdXBwb3J0c0ZvY3Vz
UmluZyhzdHlsZVRvVXNlKSkgewogICAgICAgICAgICAgLy8gT25seSBwYWludCB0aGUgZm9jdXMg
cmluZyBieSBoYW5kIGlmIHRoZSB0aGVtZSBpc24ndCBhYmxlIHRvIGRyYXcgdGhlIGZvY3VzIHJp
bmcuCi0gICAgICAgICAgICBwYWludEZvY3VzUmluZyhncmFwaGljc0NvbnRleHQsIEludFBvaW50
KHR4LCB0eSksIHN0eWxlVG9Vc2UpOworICAgICAgICAgICAgcGFpbnRGb2N1c1JpbmcoZ3JhcGhp
Y3NDb250ZXh0LCBwYWludE9mZnNldCwgc3R5bGVUb1VzZSk7CiAgICAgICAgIH0KICAgICB9CiAK
QEAgLTE0MDgsNyArMTQwOCw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpwYWludE91dGxpbmUoR3Jh
cGhpY3MKICNlbmRpZgogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IHJlY3RzLnNpemUo
KSAtIDE7IGkrKykKLSAgICAgICAgcGFpbnRPdXRsaW5lRm9yTGluZShncmFwaGljc0NvbnRleHQs
IHR4LCB0eSwgcmVjdHMuYXQoaSAtIDEpLCByZWN0cy5hdChpKSwgcmVjdHMuYXQoaSArIDEpLCBv
dXRsaW5lQ29sb3IpOworICAgICAgICBwYWludE91dGxpbmVGb3JMaW5lKGdyYXBoaWNzQ29udGV4
dCwgcGFpbnRPZmZzZXQsIHJlY3RzLmF0KGkgLSAxKSwgcmVjdHMuYXQoaSksIHJlY3RzLmF0KGkg
KyAxKSwgb3V0bGluZUNvbG9yKTsKIAogLy8gRklYTUU6IFVzaW5nIGEgdHJhbnNwYXJlbmN5IGxh
eWVyIGZvciByZ2JhIG91dGxpbmVzIGV4YWNlcmJhdGVzIGFuIGV4aXN0aW5nIFNLSUEgYnVnLiBU
aGUgI2lmCiAvLyBiZWxvdyBwcmV2ZW50cyB0aGlzOyBpdCBzaG91bGQgYmUgcmVtb3ZlZCB3aGVu
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDM0MiBpcyBmaXhlZC4K
QEAgLTE0MTgsNyArMTQxOCw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpwYWludE91dGxpbmUoR3Jh
cGhpY3MKICNlbmRpZgogfQogCi12b2lkIFJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lRm9yTGlu
ZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgaW50IHR4LCBpbnQgdHksCit2b2lk
IFJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lRm9yTGluZShHcmFwaGljc0NvbnRleHQqIGdyYXBo
aWNzQ29udGV4dCwgY29uc3QgSW50UG9pbnQmIHBhaW50T2Zmc2V0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgbGFzdGxpbmUsIGNvbnN0IElu
dFJlY3QmIHRoaXNsaW5lLCBjb25zdCBJbnRSZWN0JiBuZXh0bGluZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENvbG9yIG91dGxpbmVDb2xvcikKIHsKQEAg
LTE0MzEsMTAgKzE0MzEsMTAgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZUZvckxp
bmUoRwogCiAgICAgaW50IG9mZnNldCA9IHN0eWxlKCktPm91dGxpbmVPZmZzZXQoKTsKIAotICAg
IGludCB0ID0gdHkgKyB0aGlzbGluZS55KCkgLSBvZmZzZXQ7Ci0gICAgaW50IGwgPSB0eCArIHRo
aXNsaW5lLngoKSAtIG9mZnNldDsKLSAgICBpbnQgYiA9IHR5ICsgdGhpc2xpbmUubWF4WSgpICsg
b2Zmc2V0OwotICAgIGludCByID0gdHggKyB0aGlzbGluZS5tYXhYKCkgKyBvZmZzZXQ7CisgICAg
aW50IHQgPSBwYWludE9mZnNldC55KCkgKyB0aGlzbGluZS55KCkgLSBvZmZzZXQ7CisgICAgaW50
IGwgPSBwYWludE9mZnNldC54KCkgKyB0aGlzbGluZS54KCkgLSBvZmZzZXQ7CisgICAgaW50IGIg
PSBwYWludE9mZnNldC55KCkgKyB0aGlzbGluZS5tYXhZKCkgKyBvZmZzZXQ7CisgICAgaW50IHIg
PSBwYWludE9mZnNldC54KCkgKyB0aGlzbGluZS5tYXhYKCkgKyBvZmZzZXQ7CiAgICAgCiAgICAg
Ly8gbGVmdCBlZGdlCiAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwKQEAg
LTE0NjQsMjEgKzE0NjQsMjEgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZUZvckxp
bmUoRwogICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LAogICAgICAg
ICAgICAgICAgICAgIGwgLSBvdywKICAgICAgICAgICAgICAgICAgICB0IC0gb3csCi0gICAgICAg
ICAgICAgICAgICAgbWluKHIrb3csIChsYXN0bGluZS5pc0VtcHR5KCkgPyAxMDAwMDAwIDogdHgg
KyBsYXN0bGluZS54KCkpKSwKKyAgICAgICAgICAgICAgICAgICBtaW4ocitvdywgKGxhc3RsaW5l
LmlzRW1wdHkoKSA/IDEwMDAwMDAgOiBwYWludE9mZnNldC54KCkgKyBsYXN0bGluZS54KCkpKSwK
ICAgICAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgICAgIEJTVG9wLCBvdXRsaW5l
Q29sb3IsIG9zLAogICAgICAgICAgICAgICAgICAgIG93LAotICAgICAgICAgICAgICAgICAgICgh
bGFzdGxpbmUuaXNFbXB0eSgpICYmIHR4ICsgbGFzdGxpbmUueCgpICsgMSA8IHIgKyBvdykgPyAt
b3cgOiBvdywKKyAgICAgICAgICAgICAgICAgICAoIWxhc3RsaW5lLmlzRW1wdHkoKSAmJiBwYWlu
dE9mZnNldC54KCkgKyBsYXN0bGluZS54KCkgKyAxIDwgciArIG93KSA/IC1vdyA6IG93LAogICAg
ICAgICAgICAgICAgICAgIGFudGlhbGlhcyk7CiAgICAgCiAgICAgaWYgKGxhc3RsaW5lLm1heFgo
KSA8IHRoaXNsaW5lLm1heFgoKSkKICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNz
Q29udGV4dCwKLSAgICAgICAgICAgICAgICAgICBtYXgobGFzdGxpbmUuaXNFbXB0eSgpID8gLTEw
MDAwMDAgOiB0eCArIGxhc3RsaW5lLm1heFgoKSwgbCAtIG93KSwKKyAgICAgICAgICAgICAgICAg
ICBtYXgobGFzdGxpbmUuaXNFbXB0eSgpID8gLTEwMDAwMDAgOiBwYWludE9mZnNldC54KCkgKyBs
YXN0bGluZS5tYXhYKCksIGwgLSBvdyksCiAgICAgICAgICAgICAgICAgICAgdCAtIG93LAogICAg
ICAgICAgICAgICAgICAgIHIgKyBvdywKICAgICAgICAgICAgICAgICAgICB0LAogICAgICAgICAg
ICAgICAgICAgIEJTVG9wLCBvdXRsaW5lQ29sb3IsIG9zLAotICAgICAgICAgICAgICAgICAgICgh
bGFzdGxpbmUuaXNFbXB0eSgpICYmIGwgLSBvdyA8IHR4ICsgbGFzdGxpbmUubWF4WCgpKSA/IC1v
dyA6IG93LAorICAgICAgICAgICAgICAgICAgICghbGFzdGxpbmUuaXNFbXB0eSgpICYmIGwgLSBv
dyA8IHBhaW50T2Zmc2V0LngoKSArIGxhc3RsaW5lLm1heFgoKSkgPyAtb3cgOiBvdywKICAgICAg
ICAgICAgICAgICAgICBvdywgYW50aWFsaWFzKTsKICAgICAKICAgICAvLyBsb3dlciBlZGdlCkBA
IC0xNDg2LDIxICsxNDg2LDIxIEBAIHZvaWQgUmVuZGVySW5saW5lOjpwYWludE91dGxpbmVGb3JM
aW5lKEcKICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwKICAgICAg
ICAgICAgICAgICAgICBsIC0gb3csCiAgICAgICAgICAgICAgICAgICAgYiwKLSAgICAgICAgICAg
ICAgICAgICBtaW4ociArIG93LCAhbmV4dGxpbmUuaXNFbXB0eSgpID8gdHggKyBuZXh0bGluZS54
KCkgKyAxIDogMTAwMDAwMCksCisgICAgICAgICAgICAgICAgICAgbWluKHIgKyBvdywgIW5leHRs
aW5lLmlzRW1wdHkoKSA/IHBhaW50T2Zmc2V0LngoKSArIG5leHRsaW5lLngoKSArIDEgOiAxMDAw
MDAwKSwKICAgICAgICAgICAgICAgICAgICBiICsgb3csCiAgICAgICAgICAgICAgICAgICAgQlNC
b3R0b20sIG91dGxpbmVDb2xvciwgb3MsCiAgICAgICAgICAgICAgICAgICAgb3csCi0gICAgICAg
ICAgICAgICAgICAgKCFuZXh0bGluZS5pc0VtcHR5KCkgJiYgdHggKyBuZXh0bGluZS54KCkgKyAx
IDwgciArIG93KSA/IC1vdyA6IG93LAorICAgICAgICAgICAgICAgICAgICghbmV4dGxpbmUuaXNF
bXB0eSgpICYmIHBhaW50T2Zmc2V0LngoKSArIG5leHRsaW5lLngoKSArIDEgPCByICsgb3cpID8g
LW93IDogb3csCiAgICAgICAgICAgICAgICAgICAgYW50aWFsaWFzKTsKICAgICAKICAgICBpZiAo
bmV4dGxpbmUubWF4WCgpIDwgdGhpc2xpbmUubWF4WCgpKQogICAgICAgICBkcmF3TGluZUZvckJv
eFNpZGUoZ3JhcGhpY3NDb250ZXh0LAotICAgICAgICAgICAgICAgICAgIG1heCghbmV4dGxpbmUu
aXNFbXB0eSgpID8gdHggKyBuZXh0bGluZS5tYXhYKCkgOiAtMTAwMDAwMCwgbCAtIG93KSwKKyAg
ICAgICAgICAgICAgICAgICBtYXgoIW5leHRsaW5lLmlzRW1wdHkoKSA/IHBhaW50T2Zmc2V0Lngo
KSArIG5leHRsaW5lLm1heFgoKSA6IC0xMDAwMDAwLCBsIC0gb3cpLAogICAgICAgICAgICAgICAg
ICAgIGIsCiAgICAgICAgICAgICAgICAgICAgciArIG93LAogICAgICAgICAgICAgICAgICAgIGIg
KyBvdywKICAgICAgICAgICAgICAgICAgICBCU0JvdHRvbSwgb3V0bGluZUNvbG9yLCBvcywKLSAg
ICAgICAgICAgICAgICAgICAoIW5leHRsaW5lLmlzRW1wdHkoKSAmJiBsIC0gb3cgPCB0eCArIG5l
eHRsaW5lLm1heFgoKSkgPyAtb3cgOiBvdywKKyAgICAgICAgICAgICAgICAgICAoIW5leHRsaW5l
LmlzRW1wdHkoKSAmJiBsIC0gb3cgPCBwYWludE9mZnNldC54KCkgKyBuZXh0bGluZS5tYXhYKCkp
ID8gLW93IDogb3csCiAgICAgICAgICAgICAgICAgICAgb3csIGFudGlhbGlhcyk7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHJldmlzaW9uIDg4MTcy
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICBJbnRTaXplIHJlbGF0aXZlUG9zaXRp
b25lZElubGluZU9mZnNldChjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgdm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBJbnRQ
b2ludCYpOwotICAgIHZvaWQgcGFpbnRPdXRsaW5lKEdyYXBoaWNzQ29udGV4dCosIGludCB0eCwg
aW50IHR5KTsKKyAgICB2b2lkIHBhaW50T3V0bGluZShHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJ
bnRQb2ludCYpOwogCiAgICAgdXNpbmcgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbnRpbnVhdGlv
bjsKICAgICB1c2luZyBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c2V0Q29udGludWF0aW9uOwpAQCAt
MTYyLDcgKzE2Miw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgc3RhdGljIFJlbmRlcklubGluZSog
Y2xvbmVJbmxpbmUoUmVuZGVySW5saW5lKiBzcmMpOwogCi0gICAgdm9pZCBwYWludE91dGxpbmVG
b3JMaW5lKEdyYXBoaWNzQ29udGV4dCosIGludCB0eCwgaW50IHR5LCBjb25zdCBJbnRSZWN0JiBw
cmV2TGluZSwgY29uc3QgSW50UmVjdCYgdGhpc0xpbmUsCisgICAgdm9pZCBwYWludE91dGxpbmVG
b3JMaW5lKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYg
cHJldkxpbmUsIGNvbnN0IEludFJlY3QmIHRoaXNMaW5lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBJbnRSZWN0JiBuZXh0TGluZSwgY29uc3QgQ29sb3IpOwogICAgIFJlbmRl
ckJveE1vZGVsT2JqZWN0KiBjb250aW51YXRpb25CZWZvcmUoUmVuZGVyT2JqZWN0KiBiZWZvcmVD
aGlsZCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlz
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
b3hMaXN0LmNwcAkocmV2aXNpb24gODgxNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGluZUJveExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjcsNyArMjY3LDcgQEAg
dm9pZCBSZW5kZXJMaW5lQm94TGlzdDo6cGFpbnQoUmVuZGVyQm94TQogICAgICAgICBMaXN0SGFz
aFNldDxSZW5kZXJJbmxpbmUqPjo6aXRlcmF0b3IgZW5kID0gaW5mby5vdXRsaW5lT2JqZWN0cy0+
ZW5kKCk7CiAgICAgICAgIGZvciAoTGlzdEhhc2hTZXQ8UmVuZGVySW5saW5lKj46Oml0ZXJhdG9y
IGl0ID0gaW5mby5vdXRsaW5lT2JqZWN0cy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAg
ICAgICAgICAgICBSZW5kZXJJbmxpbmUqIGZsb3cgPSAqaXQ7Ci0gICAgICAgICAgICBmbG93LT5w
YWludE91dGxpbmUoaW5mby5jb250ZXh0LCB0eCwgdHkpOworICAgICAgICAgICAgZmxvdy0+cGFp
bnRPdXRsaW5lKGluZm8uY29udGV4dCwgSW50UG9pbnQodHgsIHR5KSk7CiAgICAgICAgIH0KICAg
ICAgICAgaW5mby5vdXRsaW5lT2JqZWN0cy0+Y2xlYXIoKTsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>