<?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>60578</bug_id>
          
          <creation_ts>2011-05-10 13:59:58 -0700</creation_ts>
          <short_desc>Switch paintMask and paintMaskImages off of ints</short_desc>
          <delta_ts>2011-05-17 06:07:25 -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>
          <dependson>60490</dependson>
    
    <dependson>60679</dependson>
          <blocked>60408</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>jamesr</cc>
    
    <cc>menard</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>401470</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-10 13:59:58 -0700</bug_when>
    <thetext>Part of ongoing refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402421</commentid>
    <comment_count>1</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-11 16:47:02 -0700</bug_when>
    <thetext>Updating name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402963</commentid>
    <comment_count>2</comment_count>
      <attachid>93306</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-12 11:02:41 -0700</bug_when>
    <thetext>Created attachment 93306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403013</commentid>
    <comment_count>3</comment_count>
      <attachid>93306</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-12 11:30:48 -0700</bug_when>
    <thetext>Comment on attachment 93306
Patch

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

&gt; Source/WebCore/platform/graphics/IntRect.h:113
&gt; +    void expand(const IntSize&amp; s) { m_size += s; }

I would have used &quot;size&quot; for the argument name

&gt; Source/WebCore/rendering/RenderBox.cpp:883
&gt; +void RenderBox::paintMask(PaintInfo&amp; paintInfo, IntSize paintOffset)

What&apos;s the offset from?  Would be nice to explain that in the name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403026</commentid>
    <comment_count>4</comment_count>
      <attachid>93306</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-12 11:38:28 -0700</bug_when>
    <thetext>Comment on attachment 93306
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/IntRect.h:113
&gt;&gt; +    void expand(const IntSize&amp; s) { m_size += s; }
&gt; 
&gt; I would have used &quot;size&quot; for the argument name

Sure.

&gt;&gt; Source/WebCore/rendering/RenderBox.cpp:883
&gt;&gt; +void RenderBox::paintMask(PaintInfo&amp; paintInfo, IntSize paintOffset)
&gt; 
&gt; What&apos;s the offset from?  Would be nice to explain that in the name.

I&apos;m unsure of how to name this in a way that satisfies everyone. I&apos;d go with something like offsetFromPaintingRoot but I&apos;m worried it may not be accurate for all cases. Would love smfr&apos;s advice (he suggested an IntSize named paintOffset in IRC IIRC).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403119</commentid>
    <comment_count>5</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-12 13:51:01 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 93306 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93306&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/IntRect.h:113
&gt; &gt; +    void expand(const IntSize&amp; s) { m_size += s; }
&gt; 
&gt; I would have used &quot;size&quot; for the argument name
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBox.cpp:883
&gt; &gt; +void RenderBox::paintMask(PaintInfo&amp; paintInfo, IntSize paintOffset)
&gt; 
&gt; What&apos;s the offset from?  Would be nice to explain that in the name.

Simon confirmed he agrees that paintOffset is the best we can do given how this currently behaves. If I switch the s to size can I get an r+?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403122</commentid>
    <comment_count>6</comment_count>
      <attachid>93306</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-12 13:53:36 -0700</bug_when>
    <thetext>Comment on attachment 93306
Patch

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403133</commentid>
    <comment_count>7</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-12 14:05:20 -0700</bug_when>
    <thetext>Committed r86377: &lt;http://trac.webkit.org/changeset/86377&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405028</commentid>
    <comment_count>8</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-17 06:07:25 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Committed r86377: &lt;http://trac.webkit.org/changeset/86377&gt;

Committed r86670: &lt;http://trac.webkit.org/changeset/86670&gt; fixes a warning.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93306</attachid>
            <date>2011-05-12 11:02:41 -0700</date>
            <delta_ts>2011-05-12 13:53:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60578-20110512110240.patch</filename>
            <type>text/plain</type>
            <size>18094</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2MzU3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDUtMTIgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN3aXRjaCBwYWludE1hc2sgYW5kIHBhaW50TWFza0ltYWdl
cyBvZmYgb2YgaW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjA1NzgKKworICAgICAgICBQcmltYXJpbHkgc3dpdGNoaW5nIHBhaW50TWFzayBhbmQg
cGFpbnRNYXNrSW1hZ2VzIHRvIHVzZSBJbnRTaXplIGFuZCBJbnRSZWN0IHJlc3BlY3RpdmVseS4K
KyAgICAgICAgSW4gdGhlIHByb2Nlc3Mgb2YgdGhhdDoKKyAgICAgICAgIC0gYWRkZWQgYW4gImV4
cGFuZCIgZnVuY3Rpb24gdG8gSW50UmVjdCB0aGF0IGFsbG93cyB5b3UgdG8gYWRkIGFuIEludFNp
emUgb3IgcGFpciBvZgorICAgICAgICAgICBpbnRlZ2VycyB0byB0aGUgc2l6ZSBwb3J0aW9uIG9m
IGFuIEludFJlY3QuCisgICAgICAgICAtIGNoYW5nZWQgYm9yZGVyRml0QWRqdXN0IHRvIHRha2Ug
YW4gSW50UmVjdC4gSXQgbW9kaWZpZXMgb25seSB0aGUgeCBhbmQgd2lkdGggYXR0cmlidXRlcy4K
KworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhpcyByZWZhY3RvcmluZy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkludFJl
Y3Q6OmV4cGFuZCk6IEFkZGVkIGZvciBjb252ZW5pZW5jZS4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50T2Jq
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpib3JkZXJGaXRBZGp1c3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJveERlY29y
YXRpb25zV2l0aFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludE1hc2sp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludE1hc2tJbWFnZXMpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6
Ym9yZGVyRml0QWRqdXN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmllbGRzZXQ6OnBhaW50TWFzayk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpwYWludCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyUmVwbGljYTo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZTo6cGFpbnRPYmplY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OnBhaW50TWFzayk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnBhaW50TWFzayk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjpwYWludCk6
CisKIDIwMTEtMDUtMTIgIEx1a2UgTWFjcGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCShyZXZpc2lvbiA4NjM1NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMTA5LDcgKzEwOSwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG1vdmUoY29uc3QgSW50
U2l6ZSYgcykgeyBtX2xvY2F0aW9uICs9IHM7IH0gCiAgICAgdm9pZCBtb3ZlKGludCBkeCwgaW50
IGR5KSB7IG1fbG9jYXRpb24ubW92ZShkeCwgZHkpOyB9IAotICAgIAorCisgICAgdm9pZCBleHBh
bmQoY29uc3QgSW50U2l6ZSYgcykgeyBtX3NpemUgKz0gczsgfQorICAgIHZvaWQgZXhwYW5kKGlu
dCBkdywgaW50IGRoKSB7IG1fc2l6ZS5leHBhbmQoZHcsIGRoKTsgfQorCiAgICAgdm9pZCBzaGlm
dFhFZGdlVG8oaW50IGVkZ2UpCiAgICAgewogICAgICAgICBpbnQgZGVsdGEgPSBlZGdlIC0geCgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lv
biA4NjM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0NjIsNyArMjQ2Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50
T2JqZWN0KFBhaW50SW5mbyYKICAgICB9CiAKICAgICBpZiAocGFpbnRQaGFzZSA9PSBQYWludFBo
YXNlTWFzayAmJiBzdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkgewotICAgICAgICBw
YWludE1hc2socGFpbnRJbmZvLCB0eCwgdHkpOworICAgICAgICBwYWludE1hc2socGFpbnRJbmZv
LCBJbnRTaXplKHR4LCB0eSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01NTk1LDcg
KzU1OTUsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjphZGp1c3RGb3JCb3JkZXJGaXQoaW50CiAgICAg
fQogfQogCi12b2lkIFJlbmRlckJsb2NrOjpib3JkZXJGaXRBZGp1c3QoaW50JiB4LCBpbnQmIHcp
IGNvbnN0Cit2b2lkIFJlbmRlckJsb2NrOjpib3JkZXJGaXRBZGp1c3QoSW50UmVjdCYgcmVjdCkg
Y29uc3QKIHsKICAgICBpZiAoc3R5bGUoKS0+Ym9yZGVyRml0KCkgPT0gQm9yZGVyRml0Qm9yZGVy
KQogICAgICAgICByZXR1cm47CkBAIC01NjAzLDE5ICs1NjAzLDE5IEBAIHZvaWQgUmVuZGVyQmxv
Y2s6OmJvcmRlckZpdEFkanVzdChpbnQmIHgKICAgICAvLyBXYWxrIGFueSBub3JtYWwgZmxvdyBs
aW5lcyB0byBzbnVnbHkgZml0LgogICAgIGludCBsZWZ0ID0gSU5UX01BWDsKICAgICBpbnQgcmln
aHQgPSBJTlRfTUlOOwotICAgIGludCBvbGRXaWR0aCA9IHc7CisgICAgaW50IG9sZFdpZHRoID0g
cmVjdC53aWR0aCgpOwogICAgIGFkanVzdEZvckJvcmRlckZpdCgwLCBsZWZ0LCByaWdodCk7CiAg
ICAgaWYgKGxlZnQgIT0gSU5UX01BWCkgewogICAgICAgICBsZWZ0IC09IChib3JkZXJMZWZ0KCkg
KyBwYWRkaW5nTGVmdCgpKTsKICAgICAgICAgaWYgKGxlZnQgPiAwKSB7Ci0gICAgICAgICAgICB4
ICs9IGxlZnQ7Ci0gICAgICAgICAgICB3IC09IGxlZnQ7CisgICAgICAgICAgICByZWN0Lm1vdmUo
bGVmdCwgMCk7CisgICAgICAgICAgICByZWN0LmV4cGFuZCgtbGVmdCwgMCk7CiAgICAgICAgIH0K
ICAgICB9CiAgICAgaWYgKHJpZ2h0ICE9IElOVF9NSU4pIHsKICAgICAgICAgcmlnaHQgKz0gKGJv
cmRlclJpZ2h0KCkgKyBwYWRkaW5nUmlnaHQoKSk7CiAgICAgICAgIGlmIChyaWdodCA8IG9sZFdp
ZHRoKQotICAgICAgICAgICAgdyAtPSAob2xkV2lkdGggLSByaWdodCk7CisgICAgICAgICAgICBy
ZWN0LmV4cGFuZCgtKG9sZFdpZHRoIC0gcmlnaHQpLCAwKTsKICAgICB9CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCShyZXZpc2lvbiA4NjM1NSkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NjAsNyArMzYwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxheW91dElubGluZUNoaWxkcmVuKGJv
b2wgcmVsYXlvdXRDaGlsZHJlbiwgaW50JiByZXBhaW50TG9naWNhbFRvcCwgaW50JiByZXBhaW50
TG9naWNhbEJvdHRvbSk7CiAgICAgQmlkaVJ1biogaGFuZGxlVHJhaWxpbmdTcGFjZXMoQmlkaVJ1
bkxpc3Q8QmlkaVJ1bj4mLCBCaWRpQ29udGV4dCopOwogCi0gICAgdmlydHVhbCB2b2lkIGJvcmRl
ckZpdEFkanVzdChpbnQmIHgsIGludCYgdykgY29uc3Q7IC8vIFNocmluayB0aGUgYm94IGluIHdo
aWNoIHRoZSBib3JkZXIgcGFpbnRzIGlmIGJvcmRlci1maXQgaXMgc2V0LgorICAgIHZpcnR1YWwg
dm9pZCBib3JkZXJGaXRBZGp1c3QoSW50UmVjdCYpIGNvbnN0OyAvLyBTaHJpbmsgdGhlIGJveCBp
biB3aGljaCB0aGUgYm9yZGVyIHBhaW50cyBpZiBib3JkZXItZml0IGlzIHNldC4KIAogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQoUHNldWRvSWQpOwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gODYzNTUpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODM3LDExICs4MzcsMTEgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnNXaXRo
UwogICAgIEludFJlY3QgcGFpbnRSZWN0ID0gSW50UmVjdCh0eCwgdHksIHdpZHRoLCBoZWlnaHQp
OwogICAgIC8vIGJvcmRlci1maXQgY2FuIGFkanVzdCB3aGVyZSB3ZSBwYWludCBvdXIgYm9yZGVy
IGFuZCBiYWNrZ3JvdW5kLiAgSWYgc2V0LCB3ZSBzbnVnbHkgZml0IG91ciBsaW5lIGJveCBkZXNj
ZW5kYW50cy4gIChUaGUgaUNoYXQKICAgICAvLyBiYWxsb29uIGxheW91dCBpcyBhbiBleGFtcGxl
IG9mIHRoaXMpLgotICAgIGJvcmRlckZpdEFkanVzdCh0eCwgd2lkdGgpOworICAgIGJvcmRlckZp
dEFkanVzdChwYWludFJlY3QpOwogCiAgICAgLy8gRklYTUU6IFNob3VsZCBldmVudHVhbGx5IGdp
dmUgdGhlIHRoZW1lIGNvbnRyb2wgb3ZlciB3aGV0aGVyIHRoZSBib3ggc2hhZG93IHNob3VsZCBw
YWludCwgc2luY2UgY29udHJvbHMgY291bGQgaGF2ZQogICAgIC8vIGN1c3RvbSBzaGFkb3dzIG9m
IHRoZWlyIG93bi4KLSAgICBwYWludEJveFNoYWRvdyhwYWludEluZm8uY29udGV4dCwgdHgsIHR5
LCB3aWR0aCwgaGVpZ2h0LCBzdHlsZSgpLCBOb3JtYWwpOworICAgIHBhaW50Qm94U2hhZG93KHBh
aW50SW5mby5jb250ZXh0LCBwYWludFJlY3QueCgpLCBwYWludFJlY3QueSgpLCBwYWludFJlY3Qu
d2lkdGgoKSwgcGFpbnRSZWN0LmhlaWdodCgpLCBzdHlsZSgpLCBOb3JtYWwpOwogCiAgICAgQmFj
a2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlID0gZGV0ZXJtaW5lQmFja2dyb3Vu
ZEJsZWVkQXZvaWRhbmNlKHBhaW50SW5mby5jb250ZXh0KTsKIApAQCAtODcwLDMyICs4NzAsMzEg
QEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnNXaXRoUwogICAgICAgICBpZiAo
c3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgpKQogICAgICAgICAgICAgdGhlbWUoKS0+cGFpbnREZWNv
cmF0aW9ucyh0aGlzLCBwYWludEluZm8sIHBhaW50UmVjdCk7CiAgICAgfQotICAgIHBhaW50Qm94
U2hhZG93KHBhaW50SW5mby5jb250ZXh0LCB0eCwgdHksIHdpZHRoLCBoZWlnaHQsIHN0eWxlKCks
IEluc2V0KTsKKyAgICBwYWludEJveFNoYWRvdyhwYWludEluZm8uY29udGV4dCwgcGFpbnRSZWN0
LngoKSwgcGFpbnRSZWN0LnkoKSwgcGFpbnRSZWN0LndpZHRoKCksIHBhaW50UmVjdC5oZWlnaHQo
KSwgc3R5bGUoKSwgSW5zZXQpOwogCiAgICAgLy8gVGhlIHRoZW1lIHdpbGwgdGVsbCB1cyB3aGV0
aGVyIG9yIG5vdCB3ZSBzaG91bGQgYWxzbyBwYWludCB0aGUgQ1NTIGJvcmRlci4KICAgICBpZiAo
KCFzdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkgfHwgKCF0aGVtZVBhaW50ZWQgJiYgdGhlbWUoKS0+
cGFpbnRCb3JkZXJPbmx5KHRoaXMsIHBhaW50SW5mbywgcGFpbnRSZWN0KSkpICYmIHN0eWxlKCkt
Pmhhc0JvcmRlcigpKQotICAgICAgICBwYWludEJvcmRlcihwYWludEluZm8uY29udGV4dCwgSW50
UmVjdCh0eCwgdHksIHdpZHRoLCBoZWlnaHQpLCBzdHlsZSgpLCBibGVlZEF2b2lkYW5jZSk7Cisg
ICAgICAgIHBhaW50Qm9yZGVyKHBhaW50SW5mby5jb250ZXh0LCBwYWludFJlY3QsIHN0eWxlKCks
IGJsZWVkQXZvaWRhbmNlKTsKIAogICAgIGlmIChibGVlZEF2b2lkYW5jZSA9PSBCYWNrZ3JvdW5k
QmxlZWRVc2VUcmFuc3BhcmVuY3lMYXllcikKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmVu
ZFRyYW5zcGFyZW5jeUxheWVyKCk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpwYWludE1hc2soUGFp
bnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5KQordm9pZCBSZW5kZXJCb3g6OnBhaW50
TWFzayhQYWludEluZm8mIHBhaW50SW5mbywgSW50U2l6ZSBwYWludE9mZnNldCkKIHsKICAgICBp
ZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QodGhpcykgfHwgc3R5bGUoKS0+dmlz
aWJpbGl0eSgpICE9IFZJU0lCTEUgfHwgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VNYXNr
IHx8IHBhaW50SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGludCB3ID0gd2lkdGgoKTsKLSAgICBpbnQgaCA9IGhlaWdodCgpOworICAgIElu
dFJlY3QgcGFpbnRSZWN0ID0gSW50UmVjdCh0b1BvaW50KHBhaW50T2Zmc2V0KSwgc2l6ZSgpKTsK
IAogICAgIC8vIGJvcmRlci1maXQgY2FuIGFkanVzdCB3aGVyZSB3ZSBwYWludCBvdXIgYm9yZGVy
IGFuZCBiYWNrZ3JvdW5kLiAgSWYgc2V0LCB3ZSBzbnVnbHkgZml0IG91ciBsaW5lIGJveCBkZXNj
ZW5kYW50cy4gIChUaGUgaUNoYXQKICAgICAvLyBiYWxsb29uIGxheW91dCBpcyBhbiBleGFtcGxl
IG9mIHRoaXMpLgotICAgIGJvcmRlckZpdEFkanVzdCh0eCwgdyk7CisgICAgYm9yZGVyRml0QWRq
dXN0KHBhaW50UmVjdCk7CiAKLSAgICBwYWludE1hc2tJbWFnZXMocGFpbnRJbmZvLCB0eCwgdHks
IHcsIGgpOworICAgIHBhaW50TWFza0ltYWdlcyhwYWludEluZm8sIHBhaW50UmVjdCk7CiB9CiAK
LXZvaWQgUmVuZGVyQm94OjpwYWludE1hc2tJbWFnZXMoY29uc3QgUGFpbnRJbmZvJiBwYWludElu
Zm8sIGludCB0eCwgaW50IHR5LCBpbnQgdywgaW50IGgpCit2b2lkIFJlbmRlckJveDo6cGFpbnRN
YXNrSW1hZ2VzKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiBwYWlu
dFJlY3QpCiB7CiAgICAgLy8gRmlndXJlIG91dCBpZiB3ZSBuZWVkIHRvIHB1c2ggYSB0cmFuc3Bh
cmVuY3kgbGF5ZXIgdG8gcmVuZGVyIG91ciBtYXNrLgogICAgIGJvb2wgcHVzaFRyYW5zcGFyZW5j
eUxheWVyID0gZmFsc2U7CkBAIC05NTMsNyArOTUyLDYgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50
TWFza0ltYWdlcyhjb25zdCBQYQogICAgIH0KIAogICAgIGlmIChhbGxNYXNrSW1hZ2VzTG9hZGVk
KSB7Ci0gICAgICAgIEludFJlY3QgcGFpbnRSZWN0ID0gSW50UmVjdCh0eCwgdHksIHcsIGgpOwog
ICAgICAgICBwYWludEZpbGxMYXllcnMocGFpbnRJbmZvLCBDb2xvcigpLCBzdHlsZSgpLT5tYXNr
TGF5ZXJzKCksIHBhaW50UmVjdCwgQmFja2dyb3VuZEJsZWVkTm9uZSwgY29tcG9zaXRlT3ApOwog
ICAgICAgICBwYWludE5pbmVQaWVjZUltYWdlKHBhaW50SW5mby5jb250ZXh0LCBwYWludFJlY3Qs
IHN0eWxlKCksIHN0eWxlKCktPm1hc2tCb3hJbWFnZSgpLCBjb21wb3NpdGVPcCk7CiAgICAgfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkocmV2aXNpb24gODYzNTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI1Miw3ICsyNTIsNyBAQCBwdWJsaWM6CiAgICAgaW50IGNvbXB1dGVDb250ZW50Qm94TG9naWNh
bFdpZHRoKGludCB3aWR0aCkgY29uc3Q7CiAgICAgaW50IGNvbXB1dGVDb250ZW50Qm94TG9naWNh
bEhlaWdodChpbnQgaGVpZ2h0KSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBib3JkZXJGaXRB
ZGp1c3QoaW50JiAvKngqLywgaW50JiAvKncqLykgY29uc3QgeyB9IC8vIFNocmluayB0aGUgYm94
IGluIHdoaWNoIHRoZSBib3JkZXIgcGFpbnRzIGlmIGJvcmRlci1maXQgaXMgc2V0LgorICAgIHZp
cnR1YWwgdm9pZCBib3JkZXJGaXRBZGp1c3QoSW50UmVjdCYpIGNvbnN0IHsgfSAvLyBTaHJpbmsg
dGhlIGJveCBpbiB3aGljaCB0aGUgYm9yZGVyIHBhaW50cyBpZiBib3JkZXItZml0IGlzIHNldC4K
IAogICAgIC8vIFJlc29sdmUgYXV0byBtYXJnaW5zIGluIHRoZSBpbmxpbmUgZGlyZWN0aW9uIG9m
IHRoZSBjb250YWluaW5nIGJsb2NrIHNvIHRoYXQgb2JqZWN0cyBjYW4gYmUgcHVzaGVkIHRvIHRo
ZSBzdGFydCwgbWlkZGxlIG9yIGVuZAogICAgIC8vIG9mIHRoZSBjb250YWluaW5nIGJsb2NrLgpA
QCAtMzQ1LDcgKzM0NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBwYWludE9iamVj
dChQYWludEluZm8mLCBpbnQgLyp0eCovLCBpbnQgLyp0eSovKSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiwg
aW50IHR4LCBpbnQgdHkpOwotICAgIHZpcnR1YWwgdm9pZCBwYWludE1hc2soUGFpbnRJbmZvJiwg
aW50IHR4LCBpbnQgdHkpOworICAgIHZpcnR1YWwgdm9pZCBwYWludE1hc2soUGFpbnRJbmZvJiwg
SW50U2l6ZSk7CiAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIs
IGNvbnN0IEludFJlY3QqID0gMCk7CiAKICAgICAvLyBDYWxsZWQgd2hlbiBhIHBvc2l0aW9uZWQg
b2JqZWN0IG1vdmVzIGJ1dCBkb2Vzbid0IG5lY2Vzc2FyaWx5IGNoYW5nZSBzaXplLiAgQSBzaW1w
bGlmaWVkIGxheW91dCBpcyBhdHRlbXB0ZWQKQEAgLTQwOSw3ICs0MDksNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBwYWludEZpbGxMYXllcnMoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgQ29sb3Im
LCBjb25zdCBGaWxsTGF5ZXIqLCBjb25zdCBJbnRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRh
bmNlID0gQmFja2dyb3VuZEJsZWVkTm9uZSwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVT
b3VyY2VPdmVyLCBSZW5kZXJPYmplY3QqIGJhY2tncm91bmRPYmplY3QgPSAwKTsKIAogICAgIHZv
aWQgcGFpbnRCb3hEZWNvcmF0aW9uc1dpdGhTaXplKFBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5
LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwotICAgIHZvaWQgcGFpbnRNYXNrSW1hZ2VzKGNvbnN0
IFBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworICAg
IHZvaWQgcGFpbnRNYXNrSW1hZ2VzKGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsK
IAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHBhaW50Q3VzdG9tSGlnaGxpZ2h0KGludCB0
eCwgaW50IHR5LCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgYmVoaW5kVGV4dCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAJKHJldmlz
aW9uIDg2MzU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTcwLDMxICsxNzAsMzEgQEAgdm9pZCBSZW5kZXJGaWVsZHNl
dDo6cGFpbnRCb3hEZWNvcmF0aW9ucwogICAgIHBhaW50Qm9yZGVyKHBhaW50SW5mby5jb250ZXh0
LCBJbnRSZWN0KHR4LCB0eSwgdywgaCksIHN0eWxlKCkpOwogfQogCi12b2lkIFJlbmRlckZpZWxk
c2V0OjpwYWludE1hc2soUGFpbnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5KQordm9p
ZCBSZW5kZXJGaWVsZHNldDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBJbnRTaXpl
IHBhaW50T2Zmc2V0KQogewogICAgIGlmIChzdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJM
RSB8fCBwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZU1hc2spCiAgICAgICAgIHJldHVybjsK
IAotICAgIGludCB3ID0gd2lkdGgoKTsKLSAgICBpbnQgaCA9IGhlaWdodCgpOworICAgIEludFJl
Y3QgcGFpbnRSZWN0ID0gSW50UmVjdCh0b1BvaW50KHBhaW50T2Zmc2V0KSwgc2l6ZSgpKTsKKyAg
ICBJbnRTaXplIGFkanVzdGVkU2l6ZSA9IHNpemUoKTsKICAgICBSZW5kZXJCb3gqIGxlZ2VuZCA9
IGZpbmRMZWdlbmQoKTsKICAgICBpZiAoIWxlZ2VuZCkKLSAgICAgICAgcmV0dXJuIFJlbmRlckJs
b2NrOjpwYWludE1hc2socGFpbnRJbmZvLCB0eCwgdHkpOworICAgICAgICByZXR1cm4gUmVuZGVy
QmxvY2s6OnBhaW50TWFzayhwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKIAogICAgIC8vIEZJWE1F
OiBXZSBuZWVkIHRvIHdvcmsgd2l0aCAicmwiIGFuZCAiYnQiIGJsb2NrIGZsb3cgZGlyZWN0aW9u
cy4gIEluIHRob3NlCiAgICAgLy8gY2FzZXMgdGhlIGxlZ2VuZCBpcyBlbWJlZGRlZCBpbiB0aGUg
cmlnaHQgYW5kIGJvdHRvbSBib3JkZXJzIHJlc3BlY3RpdmVseS4KICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDcyMzYKICAgICBpZiAoc3R5bGUoKS0+aXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSkgewogICAgICAgICBpbnQgeU9mZiA9IChsZWdlbmQtPnko
KSA+IDApID8gMCA6IChsZWdlbmQtPmhlaWdodCgpIC0gYm9yZGVyVG9wKCkpIC8gMjsKLSAgICAg
ICAgaCAtPSB5T2ZmOwotICAgICAgICB0eSArPSB5T2ZmOworICAgICAgICBwYWludFJlY3QuZXhw
YW5kKDAsIC15T2ZmKTsKKyAgICAgICAgcGFpbnRSZWN0Lm1vdmUoMCwgeU9mZik7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgaW50IHhPZmYgPSAobGVnZW5kLT54KCkgPiAwKSA/IDAgOiAobGVnZW5k
LT53aWR0aCgpIC0gYm9yZGVyTGVmdCgpKSAvIDI7Ci0gICAgICAgIHcgLT0geE9mZjsKLSAgICAg
ICAgdHggKz0geE9mZjsKKyAgICAgICAgcGFpbnRSZWN0LmV4cGFuZCgteE9mZiwgMCk7CisgICAg
ICAgIHBhaW50UmVjdC5tb3ZlKHhPZmYsIDApOwogICAgIH0KIAotICAgIHBhaW50TWFza0ltYWdl
cyhwYWludEluZm8sIHR4LCB0eSwgdywgaCk7CisgICAgcGFpbnRNYXNrSW1hZ2VzKHBhaW50SW5m
bywgcGFpbnRSZWN0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmgJKHJldmlzaW9uIDg2MzU1KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc3RyZXRjaGVzVG9N
aW5JbnRyaW5zaWNMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mLCBpbnQgdHgsIGludCB0
eSk7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50TWFzayhQYWludEluZm8mLCBpbnQgdHgsIGludCB0
eSk7CisgICAgdmlydHVhbCB2b2lkIHBhaW50TWFzayhQYWludEluZm8mLCBJbnRTaXplKTsKIH07
CiAKIGlubGluZSBSZW5kZXJGaWVsZHNldCogdG9SZW5kZXJGaWVsZHNldChSZW5kZXJPYmplY3Qq
IG9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmNwcAkocmV2aXNpb24gODYzNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBSZW5k
ZXJSZXBsYWNlZDo6cGFpbnQoUGFpbnRJbmZvJiBwYQogICAgICAgICBwYWludEJveERlY29yYXRp
b25zKHBhaW50SW5mbywgdHgsIHR5KTsKICAgICAKICAgICBpZiAocGFpbnRJbmZvLnBoYXNlID09
IFBhaW50UGhhc2VNYXNrKSB7Ci0gICAgICAgIHBhaW50TWFzayhwYWludEluZm8sIHR4LCB0eSk7
CisgICAgICAgIHBhaW50TWFzayhwYWludEluZm8sIEludFNpemUodHgsIHR5KSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsaWNhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVwbGljYS5jcHAJKHJldmlzaW9uIDg2MzU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlcGxpY2EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQg
UmVuZGVyUmVwbGljYTo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUGFpbnRCZWhhdmlvck5vcm1hbCwgMCwgMCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJIYXZlVHJh
bnNwYXJlbmN5IHwgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJBcHBsaWVkVHJhbnNmb3JtIHwgUmVu
ZGVyTGF5ZXI6OlBhaW50TGF5ZXJUZW1wb3JhcnlDbGlwUmVjdHMgfCBSZW5kZXJMYXllcjo6UGFp
bnRMYXllclBhaW50aW5nUmVmbGVjdGlvbik7CiAgICAgZWxzZSBpZiAocGFpbnRJbmZvLnBoYXNl
ID09IFBhaW50UGhhc2VNYXNrKQotICAgICAgICBwYWludE1hc2socGFpbnRJbmZvLCB0eCwgdHkp
OworICAgICAgICBwYWludE1hc2socGFpbnRJbmZvLCBJbnRTaXplKHR4LCB0eSkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZS5jcHAJKHJldmlzaW9uIDg2MzU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgwLDcgKzQ4MCw3IEBAIHZvaWQg
UmVuZGVyVGFibGU6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYKICAgICAgICAgcGFpbnRCb3hEZWNv
cmF0aW9ucyhwYWludEluZm8sIHR4LCB0eSk7CiAKICAgICBpZiAocGFpbnRQaGFzZSA9PSBQYWlu
dFBoYXNlTWFzaykgewotICAgICAgICBwYWludE1hc2socGFpbnRJbmZvLCB0eCwgdHkpOworICAg
ICAgICBwYWludE1hc2socGFpbnRJbmZvLCBJbnRTaXplKHR4LCB0eSkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC01NzMsMTUgKzU3MywxNSBAQCB2b2lkIFJlbmRlclRhYmxlOjpwYWlu
dEJveERlY29yYXRpb25zKFBhCiAgICAgICAgIHBhaW50Qm9yZGVyKHBhaW50SW5mby5jb250ZXh0
LCByZWN0LCBzdHlsZSgpKTsKIH0KIAotdm9pZCBSZW5kZXJUYWJsZTo6cGFpbnRNYXNrKFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSkKK3ZvaWQgUmVuZGVyVGFibGU6OnBhaW50
TWFzayhQYWludEluZm8mIHBhaW50SW5mbywgSW50U2l6ZSBwYWludE9mZnNldCkKIHsKICAgICBp
ZiAoc3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUgfHwgcGFpbnRJbmZvLnBoYXNlICE9
IFBhaW50UGhhc2VNYXNrKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRSZWN0IHJlY3QodHgs
IHR5LCB3aWR0aCgpLCBoZWlnaHQoKSk7CisgICAgSW50UmVjdCByZWN0KHRvUG9pbnQocGFpbnRP
ZmZzZXQpLCBzaXplKCkpOwogICAgIHN1YnRyYWN0Q2FwdGlvblJlY3QocmVjdCk7CiAKLSAgICBw
YWludE1hc2tJbWFnZXMocGFpbnRJbmZvLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgo
KSwgcmVjdC5oZWlnaHQoKSk7CisgICAgcGFpbnRNYXNrSW1hZ2VzKHBhaW50SW5mbywgcmVjdCk7
CiB9CiAKIHZvaWQgUmVuZGVyVGFibGU6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCShyZXZpc2lvbiA4NjM1
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTcsNyArMjE3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQo
UGFpbnRJbmZvJiwgaW50IHR4LCBpbnQgdHkpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludE9iamVj
dChQYWludEluZm8mLCBpbnQgdHgsIGludCB0eSk7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Qm94
RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiwgaW50IHR4LCBpbnQgdHkpOwotICAgIHZpcnR1YWwgdm9p
ZCBwYWludE1hc2soUGFpbnRJbmZvJiwgaW50IHR4LCBpbnQgdHkpOworICAgIHZpcnR1YWwgdm9p
ZCBwYWludE1hc2soUGFpbnRJbmZvJiwgSW50U2l6ZSk7CiAgICAgdmlydHVhbCB2b2lkIGxheW91
dCgpOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOwog
ICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRl
c3RSZXN1bHQmLCBpbnQgeFBvcywgaW50IHlQb3MsIGludCB0eCwgaW50IHR5LCBIaXRUZXN0QWN0
aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwu
Y3BwCShyZXZpc2lvbiA4NjM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNlbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIzLDcgKzEwMjMsNyBAQCB2b2lkIFJl
bmRlclRhYmxlQ2VsbDo6cGFpbnRCb3hEZWNvcmF0aW9uCiAgICAgcGFpbnRCb3JkZXIocGFpbnRJ
bmZvLmNvbnRleHQsIEludFJlY3QodHgsIHR5LCB3LCBoKSwgc3R5bGUoKSk7CiB9CiAKLXZvaWQg
UmVuZGVyVGFibGVDZWxsOjpwYWludE1hc2soUGFpbnRJbmZvJiBwYWludEluZm8sIGludCB0eCwg
aW50IHR5KQordm9pZCBSZW5kZXJUYWJsZUNlbGw6OnBhaW50TWFzayhQYWludEluZm8mIHBhaW50
SW5mbywgSW50U2l6ZSBwYWludE9mZnNldCkKIHsKICAgICBpZiAoc3R5bGUoKS0+dmlzaWJpbGl0
eSgpICE9IFZJU0lCTEUgfHwgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VNYXNrKQogICAg
ICAgICByZXR1cm47CkBAIC0xMDMxLDExICsxMDMxLDggQEAgdm9pZCBSZW5kZXJUYWJsZUNlbGw6
OnBhaW50TWFzayhQYWludEluZgogICAgIFJlbmRlclRhYmxlKiB0YWJsZUVsdCA9IHRhYmxlKCk7
CiAgICAgaWYgKCF0YWJsZUVsdC0+Y29sbGFwc2VCb3JkZXJzKCkgJiYgc3R5bGUoKS0+ZW1wdHlD
ZWxscygpID09IEhJREUgJiYgIWZpcnN0Q2hpbGQoKSkKICAgICAgICAgcmV0dXJuOwotCi0gICAg
aW50IHcgPSB3aWR0aCgpOwotICAgIGludCBoID0gaGVpZ2h0KCk7CiAgICAKLSAgICBwYWludE1h
c2tJbWFnZXMocGFpbnRJbmZvLCB0eCwgdHksIHcsIGgpOworICAgIHBhaW50TWFza0ltYWdlcyhw
YWludEluZm8sIEludFJlY3QodG9Qb2ludChwYWludE9mZnNldCksIHNpemUoKSkpOwogfQogCiB2
b2lkIFJlbmRlclRhYmxlQ2VsbDo6c2Nyb2xsYmFyc0NoYW5nZWQoYm9vbCBob3Jpem9udGFsU2Ny
b2xsYmFyQ2hhbmdlZCwgYm9vbCB2ZXJ0aWNhbFNjcm9sbGJhckNoYW5nZWQpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCShyZXZpc2lvbiA4NjM1NSkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAkod29ya2luZyBj
b3B5KQpAQCAtMTQzLDcgKzE0Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1
dGVMb2dpY2FsV2lkdGgoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYWludEJveERlY29yYXRpb25z
KFBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5KTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRNYXNr
KFBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5KTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRNYXNr
KFBhaW50SW5mbyYsIEludFNpemUpOwogCiAgICAgdmlydHVhbCBJbnRTaXplIG9mZnNldEZyb21D
b250YWluZXIoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAgICB2aXJ0
dWFsIEludFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcldpZGdldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcldpZGdldC5jcHAJKHJldmlzaW9uIDg2MzU1KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw3ICsyNTgsNyBA
QCB2b2lkIFJlbmRlcldpZGdldDo6cGFpbnQoUGFpbnRJbmZvJiBwYWluCiAgICAgICAgIHBhaW50
Qm94RGVjb3JhdGlvbnMocGFpbnRJbmZvLCB0eCwgdHkpOwogCiAgICAgaWYgKHBhaW50SW5mby5w
aGFzZSA9PSBQYWludFBoYXNlTWFzaykgewotICAgICAgICBwYWludE1hc2socGFpbnRJbmZvLCB0
eCwgdHkpOworICAgICAgICBwYWludE1hc2socGFpbnRJbmZvLCBJbnRTaXplKHR4LCB0eSkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCg==
</data>
<flag name="review"
          id="86449"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>