<?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>64034</bug_id>
          
          <creation_ts>2011-07-06 14:54:37 -0700</creation_ts>
          <short_desc>Switch Overflow and FrameRect methods in InlineBox to Layout Units</short_desc>
          <delta_ts>2011-07-06 16:55:23 -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>63567</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>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>433054</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-06 14:54:37 -0700</bug_when>
    <thetext>Also adding a couple missing methods to FloatPoint and fixing some build errors when building with float layout types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433059</commentid>
    <comment_count>1</comment_count>
      <attachid>99889</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-06 15:00:03 -0700</bug_when>
    <thetext>Created attachment 99889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433073</commentid>
    <comment_count>2</comment_count>
      <attachid>99889</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-06 15:33:29 -0700</bug_when>
    <thetext>Comment on attachment 99889
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433121</commentid>
    <comment_count>3</comment_count>
      <attachid>99889</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-06 16:55:19 -0700</bug_when>
    <thetext>Comment on attachment 99889
Patch

Clearing flags on attachment: 99889

Committed r90517: &lt;http://trac.webkit.org/changeset/90517&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433122</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-06 16:55:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99889</attachid>
            <date>2011-07-06 15:00:03 -0700</date>
            <delta_ts>2011-07-06 16:55:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64034-20110706150002.patch</filename>
            <type>text/plain</type>
            <size>22149</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwNTAzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTEtMDctMDYgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaCBPdmVyZmxvdyBh
bmQgRnJhbWVSZWN0IG1ldGhvZHMgaW4gSW5saW5lQm94IHRvIExheW91dCBVbml0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwMzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTd2l0Y2hpbmcgT3ZlcmZs
b3cgYW5kIEZyYW1lUmVjdCBtZXRob2RzIG9uIElubGluZUJveCB0byBuZXcgTGF5b3V0IFVuaXQg
YWJzdHJhY3Rpb24gYW5kCisgICAgICAgIGNsZWFuaW5nIHVwIHNvbWUgY29tcGlsYXRpb24gZXJy
b3JzIHRoYXQgY3JvcCB1cCB3aGVuIGJ1aWxkaW5nIHdpdGggZmxvYXRpbmcgcG9pbnQgbGF5b3V0
IHVuaXRzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2Vz
LgorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzaXppbmdCb3gpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIGVkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppc0RlbGV0YWJsZUVsZW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9ET01Ob2RlSGln
aGxpZ2h0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NTm9kZUhpZ2hsaWdodGVyOjpkcmF3
Tm9kZUhpZ2hsaWdodCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOgorICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbFZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnZpc2libGVXaWR0aCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp2aXNpYmxlSGVpZ2h0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OnZpc2libGVIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OnZpc2libGVXaWR0aCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5o
OiBBZGRpbmcgRmxvYXRQb2ludCBhbmQgRmxvYXRTaXplIG1vdmVbQnldIGZ1bmN0aW9ucworICAg
ICAgICAoV2ViQ29yZTo6RmxvYXRQb2ludDo6bW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9h
dFBvaW50Ojptb3ZlQnkpOgorICAgICAgICAqIHJlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXV0b1RhYmxlTGF5b3V0Ojpjb21wdXRlUHJlZmVycmVkTG9n
aWNhbFdpZHRocyk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmxheW91dCk6
CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6
OklubGluZUZsb3dCb3g6OmxheW91dE92ZXJmbG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVGbG93Qm94Ojpsb2dpY2FsTGVmdExheW91dE92ZXJmbG93KToKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUZsb3dCb3g6OmxvZ2ljYWxSaWdodExheW91dE92ZXJmbG93KToKKyAgICAgICAg
KFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmxvZ2ljYWxUb3BMYXlvdXRPdmVyZmxvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpsb2dpY2FsQm90dG9tTGF5b3V0T3ZlcmZsb3cp
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6bG9naWNhbExheW91dE92ZXJmbG93
UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojp2aXN1YWxPdmVyZmxvd1Jl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6bG9naWNhbExlZnRWaXN1YWxP
dmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpsb2dpY2FsUmlnaHRW
aXN1YWxPdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpsb2dpY2Fs
VG9wVmlzdWFsT3ZlcmZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6bG9n
aWNhbEJvdHRvbVZpc3VhbE92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dC
b3g6OmxvZ2ljYWxWaXN1YWxPdmVyZmxvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
Rmxvd0JveDo6ZnJhbWVSZWN0SW5jbHVkaW5nTGluZUhlaWdodCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVGbG93Qm94Ojpsb2dpY2FsRnJhbWVSZWN0SW5jbHVkaW5nTGluZUhlaWdodCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6UmVuZGVyQmxvY2tSYXJlRGF0YTo6cG9zaXRpdmVNYXJnaW5CZWZvcmVEZWZhdWx0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1JhcmVEYXRhOjpu
ZWdhdGl2ZU1hcmdpbkJlZm9yZURlZmF1bHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OlJlbmRlckJsb2NrUmFyZURhdGE6OnBvc2l0aXZlTWFyZ2luQWZ0ZXJEZWZhdWx0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1JhcmVEYXRhOjpuZWdhdGl2
ZU1hcmdpbkFmdGVyRGVmYXVsdCk6CisKIDIwMTEtMDctMDYgIFBhdmVsIEZlbGRtYW4gIDxwZmVs
ZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJldmlld2VkOiBXZWIgSW5zcGVjdG9y
OiBmaXhpbmcgdHlwbyBpbnRyb2R1Y2VkIGluIHRoZSByOTAzOTcuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAkocmV2aXNp
b24gOTA0NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ0LDEwICs0NDQsMTAgQEAgc3RhdGljIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IGdldEJvcmRlclJhZAogICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsK
IH0KIAotc3RhdGljIEludFJlY3Qgc2l6aW5nQm94KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCitz
dGF0aWMgTGF5b3V0UmVjdCBzaXppbmdCb3goUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKICAg
ICBpZiAoIXJlbmRlcmVyLT5pc0JveCgpKQotICAgICAgICByZXR1cm4gSW50UmVjdCgpOworICAg
ICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwogICAgIAogICAgIFJlbmRlckJveCogYm94ID0gdG9S
ZW5kZXJCb3gocmVuZGVyZXIpOwogICAgIHJldHVybiBib3gtPnN0eWxlKCktPmJveFNpemluZygp
ID09IENPTlRFTlRfQk9YID8gYm94LT5jb250ZW50Qm94UmVjdCgpIDogYm94LT5ib3JkZXJCb3hS
ZWN0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gOTA0NzEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgIkRvY3VtZW50VGltaW5nLmgiCiAjaW5jbHVkZSAiSWNvblVSTC5oIgogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2luY2x1ZGUgIlBh
Z2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtMTM3OCw3ICsxMzc5LDcgQEAgcHJpdmF0
ZToKICAgICBUaW1lcjxEb2N1bWVudD4gbV9mdWxsU2NyZWVuQ2hhbmdlRGVsYXlUaW1lcjsKICAg
ICBEZXF1ZTxSZWZQdHI8RWxlbWVudD4gPiBtX2Z1bGxTY3JlZW5DaGFuZ2VFdmVudFRhcmdldFF1
ZXVlOwogICAgIGJvb2wgbV9pc0FuaW1hdGluZ0Z1bGxTY3JlZW47Ci0gICAgSW50UmVjdCBtX3Nh
dmVkUGxhY2Vob2xkZXJGcmFtZVJlY3Q7CisgICAgTGF5b3V0UmVjdCBtX3NhdmVkUGxhY2Vob2xk
ZXJGcmFtZVJlY3Q7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX3NhdmVkUGxhY2Vob2xkZXJS
ZW5kZXJTdHlsZTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDkwNDcxKQorKysgU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgYm9vbCBpc0RlbGV0YWJsZUVsZW1lbnQoY29uc3Qg
Tm9kCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlbmRlckJveCogYm94ID0gdG9SZW5k
ZXJCb3gocmVuZGVyZXIpOwotICAgIEludFJlY3QgYm9yZGVyQm91bmRpbmdCb3ggPSBib3gtPmJv
cmRlckJvdW5kaW5nQm94KCk7CisgICAgTGF5b3V0UmVjdCBib3JkZXJCb3VuZGluZ0JveCA9IGJv
eC0+Ym9yZGVyQm91bmRpbmdCb3goKTsKICAgICBpZiAoYm9yZGVyQm91bmRpbmdCb3gud2lkdGgo
KSA8IG1pbmltdW1XaWR0aCB8fCBib3JkZXJCb3VuZGluZ0JveC5oZWlnaHQoKSA8IG1pbmltdW1I
ZWlnaHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAJKHJldmlzaW9uIDkwNDcxKQorKysg
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIzMSw4ICsyMzEsOCBAQCB2b2lkIGRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNz
Q29udGV4dCYgCiAgICAgaWYgKCFyZW5kZXJlciB8fCAhY29udGFpbmluZ0ZyYW1lKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBJbnRTaXplIG1haW5GcmFtZU9mZnNldCA9IGZyYW1lVG9NYWluRnJh
bWVPZmZzZXQoY29udGFpbmluZ0ZyYW1lKTsKLSAgICBJbnRSZWN0IGJvdW5kaW5nQm94ID0gcmVu
ZGVyZXItPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KHRydWUpOworICAgIExheW91dFNpemUgbWFp
bkZyYW1lT2Zmc2V0ID0gZnJhbWVUb01haW5GcmFtZU9mZnNldChjb250YWluaW5nRnJhbWUpOwor
ICAgIExheW91dFJlY3QgYm91bmRpbmdCb3ggPSByZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0Jv
eFJlY3QodHJ1ZSk7CiAKICAgICBib3VuZGluZ0JveC5tb3ZlKG1haW5GcmFtZU9mZnNldCk7CiAK
QEAgLTI1NSwxNSArMjU1LDE1IEBAIHZvaWQgZHJhd05vZGVIaWdobGlnaHQoR3JhcGhpY3NDb250
ZXh0JiAKICAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSB0b1JlbmRlckJveChyZW5kZXJl
cik7CiAKICAgICAgICAgLy8gUmVuZGVyQm94IHJldHVybnMgdGhlICJwdXJlIiBjb250ZW50IGFy
ZWEgYm94LCBleGNsdXNpdmUgb2YgdGhlIHNjcm9sbGJhcnMgKGlmIHByZXNlbnQpLCB3aGljaCBh
bHNvIGNvdW50IHRvd2FyZHMgdGhlIGNvbnRlbnQgYXJlYSBpbiBDU1MuCi0gICAgICAgIEludFJl
Y3QgY29udGVudEJveCA9IHJlbmRlckJveC0+Y29udGVudEJveFJlY3QoKTsKKyAgICAgICAgTGF5
b3V0UmVjdCBjb250ZW50Qm94ID0gcmVuZGVyQm94LT5jb250ZW50Qm94UmVjdCgpOwogICAgICAg
ICBjb250ZW50Qm94LnNldFdpZHRoKGNvbnRlbnRCb3gud2lkdGgoKSArIHJlbmRlckJveC0+dmVy
dGljYWxTY3JvbGxiYXJXaWR0aCgpKTsKICAgICAgICAgY29udGVudEJveC5zZXRIZWlnaHQoY29u
dGVudEJveC5oZWlnaHQoKSArIHJlbmRlckJveC0+aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgp
KTsKIAotICAgICAgICBJbnRSZWN0IHBhZGRpbmdCb3goY29udGVudEJveC54KCkgLSByZW5kZXJC
b3gtPnBhZGRpbmdMZWZ0KCksIGNvbnRlbnRCb3gueSgpIC0gcmVuZGVyQm94LT5wYWRkaW5nVG9w
KCksCisgICAgICAgIExheW91dFJlY3QgcGFkZGluZ0JveChjb250ZW50Qm94LngoKSAtIHJlbmRl
ckJveC0+cGFkZGluZ0xlZnQoKSwgY29udGVudEJveC55KCkgLSByZW5kZXJCb3gtPnBhZGRpbmdU
b3AoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRCb3gud2lkdGgoKSArIHJl
bmRlckJveC0+cGFkZGluZ0xlZnQoKSArIHJlbmRlckJveC0+cGFkZGluZ1JpZ2h0KCksIGNvbnRl
bnRCb3guaGVpZ2h0KCkgKyByZW5kZXJCb3gtPnBhZGRpbmdUb3AoKSArIHJlbmRlckJveC0+cGFk
ZGluZ0JvdHRvbSgpKTsKLSAgICAgICAgSW50UmVjdCBib3JkZXJCb3gocGFkZGluZ0JveC54KCkg
LSByZW5kZXJCb3gtPmJvcmRlckxlZnQoKSwgcGFkZGluZ0JveC55KCkgLSByZW5kZXJCb3gtPmJv
cmRlclRvcCgpLAorICAgICAgICBMYXlvdXRSZWN0IGJvcmRlckJveChwYWRkaW5nQm94LngoKSAt
IHJlbmRlckJveC0+Ym9yZGVyTGVmdCgpLCBwYWRkaW5nQm94LnkoKSAtIHJlbmRlckJveC0+Ym9y
ZGVyVG9wKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdCb3gud2lkdGgoKSAr
IHJlbmRlckJveC0+Ym9yZGVyTGVmdCgpICsgcmVuZGVyQm94LT5ib3JkZXJSaWdodCgpLCBwYWRk
aW5nQm94LmhlaWdodCgpICsgcmVuZGVyQm94LT5ib3JkZXJUb3AoKSArIHJlbmRlckJveC0+Ym9y
ZGVyQm90dG9tKCkpOwotICAgICAgICBJbnRSZWN0IG1hcmdpbkJveChib3JkZXJCb3gueCgpIC0g
cmVuZGVyQm94LT5tYXJnaW5MZWZ0KCksIGJvcmRlckJveC55KCkgLSByZW5kZXJCb3gtPm1hcmdp
blRvcCgpLAorICAgICAgICBMYXlvdXRSZWN0IG1hcmdpbkJveChib3JkZXJCb3gueCgpIC0gcmVu
ZGVyQm94LT5tYXJnaW5MZWZ0KCksIGJvcmRlckJveC55KCkgLSByZW5kZXJCb3gtPm1hcmdpblRv
cCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJCb3gud2lkdGgoKSArIHJlbmRl
ckJveC0+bWFyZ2luTGVmdCgpICsgcmVuZGVyQm94LT5tYXJnaW5SaWdodCgpLCBib3JkZXJCb3gu
aGVpZ2h0KCkgKyByZW5kZXJCb3gtPm1hcmdpblRvcCgpICsgcmVuZGVyQm94LT5tYXJnaW5Cb3R0
b20oKSk7CiAKICAgICAgICAgRnJhbWVWaWV3KiBjb250YWluaW5nVmlldyA9IGNvbnRhaW5pbmdG
cmFtZS0+dmlldygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0
aW9uQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQmFzZS5jcHAJKHJldmlzaW9uIDkwNDcxKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw3ICsx
NzUsNyBAQCBzdGF0aWMgaW5saW5lIFRyYW5zZm9ybU9wZXJhdGlvbnMgYmxlbmRGCiAgICAgICAg
IH0KICAgICB9IGVsc2UgewogICAgICAgICAvLyBDb252ZXJ0IHRoZSBUcmFuc2Zvcm1PcGVyYXRp
b25zIGludG8gbWF0cmljZXMKLSAgICAgICAgSW50U2l6ZSBzaXplID0gYW5pbS0+cmVuZGVyZXIo
KS0+aXNCb3goKSA/IHRvUmVuZGVyQm94KGFuaW0tPnJlbmRlcmVyKCkpLT5ib3JkZXJCb3hSZWN0
KCkuc2l6ZSgpIDogSW50U2l6ZSgpOworICAgICAgICBMYXlvdXRTaXplIHNpemUgPSBhbmltLT5y
ZW5kZXJlcigpLT5pc0JveCgpID8gdG9SZW5kZXJCb3goYW5pbS0+cmVuZGVyZXIoKSktPmJvcmRl
ckJveFJlY3QoKS5zaXplKCkgOiBMYXlvdXRTaXplKCk7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IGZyb21UOwogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0b1Q7CiAgICAgICAg
IGZyb20uYXBwbHkoc2l6ZSwgZnJvbVQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuaAkocmV2aXNpb24gOTA0NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw4ICsxNDUsOCBAQCBwdWJsaWM6CiAgICAg
SW50UmVjdCB2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycyA9IGZhbHNl
KSBjb25zdDsKICAgICBJbnRSZWN0IGFjdHVhbFZpc2libGVDb250ZW50UmVjdCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWN0dWFsVmlzaWJsZUNvbnRlbnRSZWN0LmlzRW1wdHkoKSA/IHZpc2libGVDb250
ZW50UmVjdCgpIDogbV9hY3R1YWxWaXNpYmxlQ29udGVudFJlY3Q7IH0KICAgICB2b2lkIHNldEFj
dHVhbFZpc2libGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JiBhY3R1YWxWaXNpYmxlQ29udGVu
dFJlY3QpIHsgbV9hY3R1YWxWaXNpYmxlQ29udGVudFJlY3QgPSBhY3R1YWxWaXNpYmxlQ29udGVu
dFJlY3Q7IH0KLSAgICBpbnQgdmlzaWJsZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gdmlzaWJsZUNv
bnRlbnRSZWN0KCkud2lkdGgoKTsgfQotICAgIGludCB2aXNpYmxlSGVpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gdmlzaWJsZUNvbnRlbnRSZWN0KCkuaGVpZ2h0KCk7IH0KKyAgICBMYXlvdXRVbml0IHZp
c2libGVXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIHZpc2libGVDb250ZW50UmVjdCgpLndpZHRoKCk7
IH0KKyAgICBMYXlvdXRVbml0IHZpc2libGVIZWlnaHQoKSBjb25zdCB7IHJldHVybiB2aXNpYmxl
Q29udGVudFJlY3QoKS5oZWlnaHQoKTsgfQogCiAgICAgLy8gRnVuY3Rpb25zIGZvciBnZXR0aW5n
L3NldHRpbmcgdGhlIHNpemUgd2Via2l0IHNob3VsZCB1c2UgdG8gbGF5b3V0IHRoZSBjb250ZW50
cy4gQnkgZGVmYXVsdCB0aGlzIGlzIHRoZSBzYW1lIGFzIHRoZSB2aXNpYmxlCiAgICAgLy8gY29u
dGVudCBzaXplLiBFeHBsaWNpdGx5IHNldHRpbmcgYSBsYXlvdXQgc2l6ZSB2YWx1ZSB3aWxsIGNh
dXNlIHdlYmtpdCB0byBsYXlvdXQgdGhlIGNvbnRlbnRzIHVzaW5nIHRoaXMgc2l6ZSBpbnN0ZWFk
LgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCShyZXZpc2lv
biA5MDQ3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgU2Nyb2xsYWJsZUFyZWFfaAog
I2RlZmluZSBTY3JvbGxhYmxlQXJlYV9oCiAKLSNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVk
ZSAiTGF5b3V0VHlwZXMuaCIKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKQEAgLTEyMiw4ICsxMjIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJbnRQ
b2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyByZXR1cm4gSW50UG9pbnQoKTsgfQogICAgIHZpcnR1YWwgSW50UG9pbnQgbWF4aW11bVNjcm9s
bFBvc2l0aW9uKCkgY29uc3QgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIEludFBvaW50
KCk7IH0KICAgICB2aXJ0dWFsIEludFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgLyppbmNs
dWRlU2Nyb2xsYmFycyovID0gZmFsc2UpIGNvbnN0IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJl
dHVybiBJbnRSZWN0KCk7IH0KLSAgICB2aXJ0dWFsIGludCB2aXNpYmxlSGVpZ2h0KCkgY29uc3Qg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGludCB2aXNp
YmxlV2lkdGgoKSBjb25zdCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQorICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCB2aXNpYmxlSGVpZ2h0KCkgY29uc3QgeyBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIExheW91dFVuaXQgdmlzaWJsZVdpZHRo
KCkgY29uc3QgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFs
IEludFNpemUgY29udGVudHNTaXplKCkgY29uc3QgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0
dXJuIEludFNpemUoKTsgfQogICAgIHZpcnR1YWwgSW50U2l6ZSBvdmVyaGFuZ0Ftb3VudCgpIGNv
bnN0IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBJbnRTaXplKCk7IH0KICAgICB2aXJ0
dWFsIEludFBvaW50IGN1cnJlbnRNb3VzZVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gSW50UG9p
bnQoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2lu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
UG9pbnQuaAkocmV2aXNpb24gOTA0NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTk2LDExICs5NiwyMSBAQCBwdWJs
aWM6CiAgICAgICAgIG1feCArPSBhLndpZHRoKCk7CiAgICAgICAgIG1feSArPSBhLmhlaWdodCgp
OwogICAgIH0KKyAgICB2b2lkIG1vdmUoY29uc3QgRmxvYXRTaXplJiBhKQorICAgIHsKKyAgICAg
ICAgbV94ICs9IGEud2lkdGgoKTsKKyAgICAgICAgbV95ICs9IGEuaGVpZ2h0KCk7CisgICAgfQog
ICAgIHZvaWQgbW92ZUJ5KGNvbnN0IEludFBvaW50JiBhKQogICAgIHsKICAgICAgICAgbV94ICs9
IGEueCgpOwogICAgICAgICBtX3kgKz0gYS55KCk7CiAgICAgfQorICAgIHZvaWQgbW92ZUJ5KGNv
bnN0IEZsb2F0UG9pbnQmIGEpCisgICAgeworICAgICAgICBtX3ggKz0gYS54KCk7CisgICAgICAg
IG1feSArPSBhLnkoKTsKKyAgICB9CiAgICAgdm9pZCBzY2FsZShmbG9hdCBzeCwgZmxvYXQgc3kp
CiAgICAgewogICAgICAgICBtX3ggKj0gc3g7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvQXV0b1RhYmxlTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNwcAkocmV2aXNpb24gOTA0NzEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUy
LDggKzI1Miw4IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0Ojpjb21wdXRlUHJlZmVycmVkTG8KICAg
ICBpZiAoc2NhbGVDb2x1bW5zKSB7CiAgICAgICAgIG1heE5vblBlcmNlbnQgPSBtYXhOb25QZXJj
ZW50ICogMTAwIC8gbWF4KHJlbWFpbmluZ1BlcmNlbnQsIGVwc2lsb24pOwogICAgICAgICAvLyBG
SVhNRTogUmVtb3ZlIHVubmVjZXNzYXJ5IHJvdW5kaW5nIHdoZW4gbGF5b3V0IGlzIG9mZiBpbnRz
OiB3ZWJraXQub3JnL2IvNjM2NTYKLSAgICAgICAgbWF4V2lkdGggPSBtYXgobWF4V2lkdGgsIHN0
YXRpY19jYXN0PGludD4obWluKG1heE5vblBlcmNlbnQsIG51bWVyaWNfbGltaXRzPExheW91dFVu
aXQ+OjptYXgoKSAvIDIuMGYpKSk7Ci0gICAgICAgIG1heFdpZHRoID0gbWF4KG1heFdpZHRoLCBz
dGF0aWNfY2FzdDxpbnQ+KG1pbihtYXhQZXJjZW50LCBudW1lcmljX2xpbWl0czxMYXlvdXRVbml0
Pjo6bWF4KCkgLyAyLjBmKSkpOworICAgICAgICBtYXhXaWR0aCA9IG1heDxMYXlvdXRVbml0Piht
YXhXaWR0aCwgc3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4obWluKG1heE5vblBlcmNlbnQsIG51bWVy
aWNfbGltaXRzPExheW91dFVuaXQ+OjptYXgoKSAvIDIuMGYpKSk7CisgICAgICAgIG1heFdpZHRo
ID0gbWF4PExheW91dFVuaXQ+KG1heFdpZHRoLCBzdGF0aWNfY2FzdDxMYXlvdXRVbml0PihtaW4o
bWF4UGVyY2VudCwgbnVtZXJpY19saW1pdHM8TGF5b3V0VW5pdD46Om1heCgpIC8gMi4wZikpKTsK
ICAgICB9CiAKICAgICBtYXhXaWR0aCA9IG1heChtYXhXaWR0aCwgc3Bhbk1heExvZ2ljYWxXaWR0
aCk7CkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVm
ZXJyZWRMbwogCiAgICAgTGVuZ3RoIHRhYmxlTG9naWNhbFdpZHRoID0gbV90YWJsZS0+c3R5bGUo
KS0+bG9naWNhbFdpZHRoKCk7CiAgICAgaWYgKHRhYmxlTG9naWNhbFdpZHRoLmlzRml4ZWQoKSAm
JiB0YWJsZUxvZ2ljYWxXaWR0aC52YWx1ZSgpID4gMCkgewotICAgICAgICBtaW5XaWR0aCA9IG1h
eChtaW5XaWR0aCwgdGFibGVMb2dpY2FsV2lkdGgudmFsdWUoKSk7CisgICAgICAgIG1pbldpZHRo
ID0gbWF4PExheW91dFVuaXQ+KG1pbldpZHRoLCB0YWJsZUxvZ2ljYWxXaWR0aC52YWx1ZSgpKTsK
ICAgICAgICAgbWF4V2lkdGggPSBtaW5XaWR0aDsKICAgICB9IGVsc2UgaWYgKCFyZW1haW5pbmdQ
ZXJjZW50ICYmIG1heE5vblBlcmNlbnQpIHsKICAgICAgICAgLy8gaWYgdGhlcmUgd2FzIG5vIHJl
bWFpbmluZyBwZXJjZW50LCBtYXhXaWR0aCBpcyBpbnZhbGlkLgpAQCAtNTUxLDcgKzU1MSw3IEBA
IHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICAgICAgICAgICAgICBMYXlv
dXRVbml0IHJlZHVjdGlvbiA9IG1pbihjZWxsTG9naWNhbFdpZHRoLCAgZXhjZXNzKTsKICAgICAg
ICAgICAgICAgICAgICAgLy8gdGhlIGxpbmVzIGJlbG93IG1pZ2h0IGxvb2sgaW5jb25zaXN0ZW50
LCBidXQgdGhhdCdzIHRoZSB3YXkgaXQncyBoYW5kbGVkIGluIG1vemlsbGEKICAgICAgICAgICAg
ICAgICAgICAgZXhjZXNzIC09IHJlZHVjdGlvbjsKLSAgICAgICAgICAgICAgICAgICAgTGF5b3V0
VW5pdCBuZXdMb2dpY2FsV2lkdGggPSBtYXgobV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWlu
TG9naWNhbFdpZHRoLCBjZWxsTG9naWNhbFdpZHRoIC0gcmVkdWN0aW9uKTsKKyAgICAgICAgICAg
ICAgICAgICAgTGF5b3V0VW5pdCBuZXdMb2dpY2FsV2lkdGggPSBtYXg8TGF5b3V0VW5pdD4obV9s
YXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWluTG9naWNhbFdpZHRoLCBjZWxsTG9naWNhbFdpZHRo
IC0gcmVkdWN0aW9uKTsKICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlICs9IGNlbGxMb2dp
Y2FsV2lkdGggLSBuZXdMb2dpY2FsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIG1fbGF5b3V0
U3RydWN0W2ldLmNvbXB1dGVkTG9naWNhbFdpZHRoID0gbmV3TG9naWNhbFdpZHRoOwogICAgICAg
ICAgICAgICAgIH0KQEAgLTU4OSw3ICs1ODksNyBAQCB2b2lkIEF1dG9UYWJsZUxheW91dDo6bGF5
b3V0KCkKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuRWZmQ29sczsgKytpKSB7CiAg
ICAgICAgICAgICBMZW5ndGgmIGxvZ2ljYWxXaWR0aCA9IG1fbGF5b3V0U3RydWN0W2ldLmVmZmVj
dGl2ZUxvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNBdXRvKCkg
JiYgdG90YWxBdXRvICYmICFtX2xheW91dFN0cnVjdFtpXS5lbXB0eUNlbGxzT25seSkgewotICAg
ICAgICAgICAgICAgIExheW91dFVuaXQgY2VsbExvZ2ljYWxXaWR0aCA9IG1heChtX2xheW91dFN0
cnVjdFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0aCwgc3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4oYXZh
aWxhYmxlICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZU1h
eExvZ2ljYWxXaWR0aCkgLyB0b3RhbEF1dG8pKTsKKyAgICAgICAgICAgICAgICBMYXlvdXRVbml0
IGNlbGxMb2dpY2FsV2lkdGggPSBtYXg8TGF5b3V0VW5pdD4obV9sYXlvdXRTdHJ1Y3RbaV0uY29t
cHV0ZWRMb2dpY2FsV2lkdGgsIHN0YXRpY19jYXN0PExheW91dFVuaXQ+KGF2YWlsYWJsZSAqIHN0
YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lk
dGgpIC8gdG90YWxBdXRvKSk7CiAgICAgICAgICAgICAgICAgYXZhaWxhYmxlIC09IGNlbGxMb2dp
Y2FsV2lkdGg7CiAgICAgICAgICAgICAgICAgdG90YWxBdXRvIC09IG1fbGF5b3V0U3RydWN0W2ld
LmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICBtX2xheW91dFN0cnVj
dFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0aCA9IGNlbGxMb2dpY2FsV2lkdGg7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgJKHJldmlzaW9uIDkwNDcxKQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaAkod29ya2luZyBjb3B5KQpA
QCAtMTk2LDcwICsxOTYsNzAgQEAgcHVibGljOgogICAgIC8vIExpbmUgdmlzdWFsIGFuZCBsYXlv
dXQgb3ZlcmZsb3cgYXJlIGluIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIHRoZSBibG9jay4gIFRo
aXMgbWVhbnMgdGhhdCB0aGV5IGFyZW4ndCBwdXJlbHkgcGh5c2ljYWwgZGlyZWN0aW9ucy4KICAg
ICAvLyBGb3IgaG9yaXpvbnRhbC10YiBhbmQgdmVydGljYWwtbHIgdGhleSB3aWxsIG1hdGNoIHBo
eXNpY2FsIGRpcmVjdGlvbnMsIGJ1dCBmb3IgaG9yaXpvbnRhbC1idCBhbmQgdmVydGljYWwtcmws
IHRoZSB0b3AvYm90dG9tIGFuZCBsZWZ0L3JpZ2h0CiAgICAgLy8gcmVzcGVjdGl2ZWx5IGFyZSBm
bGlwcGVkIHdoZW4gY29tcGFyZWQgdG8gdGhlaXIgcGh5c2ljYWwgY291bnRlcnBhcnRzLiAgRm9y
IGV4YW1wbGUgbWluWCBpcyBvbiB0aGUgbGVmdCBpbiB2ZXJ0aWNhbC1sciwgYnV0IGl0IGlzIG9u
IHRoZSByaWdodCBpbiB2ZXJ0aWNhbC1ybC4KLSAgICBJbnRSZWN0IGxheW91dE92ZXJmbG93UmVj
dChpbnQgbGluZVRvcCwgaW50IGxpbmVCb3R0b20pIGNvbnN0CisgICAgTGF5b3V0UmVjdCBsYXlv
dXRPdmVyZmxvd1JlY3QoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20p
IGNvbnN0CiAgICAgeyAKICAgICAgICAgcmV0dXJuIG1fb3ZlcmZsb3cgPyBtX292ZXJmbG93LT5s
YXlvdXRPdmVyZmxvd1JlY3QoKSA6IGVuY2xvc2luZ0ludFJlY3QoZnJhbWVSZWN0SW5jbHVkaW5n
TGluZUhlaWdodChsaW5lVG9wLCBsaW5lQm90dG9tKSk7CiAgICAgfQotICAgIGludCBsb2dpY2Fs
TGVmdExheW91dE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdyA/IChpc0hvcml6
b250YWwoKSA/IG1fb3ZlcmZsb3ctPm1pblhMYXlvdXRPdmVyZmxvdygpIDogbV9vdmVyZmxvdy0+
bWluWUxheW91dE92ZXJmbG93KCkpIDogbG9naWNhbExlZnQoKTsgfQotICAgIGludCBsb2dpY2Fs
UmlnaHRMYXlvdXRPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3cgPyAoaXNIb3Jp
em9udGFsKCkgPyBtX292ZXJmbG93LT5tYXhYTGF5b3V0T3ZlcmZsb3coKSA6IG1fb3ZlcmZsb3ct
Pm1heFlMYXlvdXRPdmVyZmxvdygpKSA6IGNlaWxmKGxvZ2ljYWxSaWdodCgpKTsgfQotICAgIGlu
dCBsb2dpY2FsVG9wTGF5b3V0T3ZlcmZsb3coaW50IGxpbmVUb3ApIGNvbnN0CisgICAgTGF5b3V0
VW5pdCBsb2dpY2FsTGVmdExheW91dE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxv
dyA/IChpc0hvcml6b250YWwoKSA/IG1fb3ZlcmZsb3ctPm1pblhMYXlvdXRPdmVyZmxvdygpIDog
bV9vdmVyZmxvdy0+bWluWUxheW91dE92ZXJmbG93KCkpIDogbG9naWNhbExlZnQoKTsgfQorICAg
IExheW91dFVuaXQgbG9naWNhbFJpZ2h0TGF5b3V0T3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBt
X292ZXJmbG93ID8gKGlzSG9yaXpvbnRhbCgpID8gbV9vdmVyZmxvdy0+bWF4WExheW91dE92ZXJm
bG93KCkgOiBtX292ZXJmbG93LT5tYXhZTGF5b3V0T3ZlcmZsb3coKSkgOiBjZWlsZihsb2dpY2Fs
UmlnaHQoKSk7IH0KKyAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3BMYXlvdXRPdmVyZmxvdyhMYXlv
dXRVbml0IGxpbmVUb3ApIGNvbnN0CiAgICAgewogICAgICAgICBpZiAobV9vdmVyZmxvdykKICAg
ICAgICAgICAgIHJldHVybiBpc0hvcml6b250YWwoKSA/IG1fb3ZlcmZsb3ctPm1pbllMYXlvdXRP
dmVyZmxvdygpIDogbV9vdmVyZmxvdy0+bWluWExheW91dE92ZXJmbG93KCk7CiAgICAgICAgIHJl
dHVybiBsaW5lVG9wOwogICAgIH0KLSAgICBpbnQgbG9naWNhbEJvdHRvbUxheW91dE92ZXJmbG93
KGludCBsaW5lQm90dG9tKSBjb25zdAorICAgIExheW91dFVuaXQgbG9naWNhbEJvdHRvbUxheW91
dE92ZXJmbG93KExheW91dFVuaXQgbGluZUJvdHRvbSkgY29uc3QKICAgICB7CiAgICAgICAgIGlm
IChtX292ZXJmbG93KQogICAgICAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbCgpID8gbV9vdmVy
Zmxvdy0+bWF4WUxheW91dE92ZXJmbG93KCkgOiBtX292ZXJmbG93LT5tYXhYTGF5b3V0T3ZlcmZs
b3coKTsKICAgICAgICAgcmV0dXJuIGxpbmVCb3R0b207CiAgICAgfQotICAgIEludFJlY3QgbG9n
aWNhbExheW91dE92ZXJmbG93UmVjdChpbnQgbGluZVRvcCwgaW50IGxpbmVCb3R0b20pIGNvbnN0
CisgICAgTGF5b3V0UmVjdCBsb2dpY2FsTGF5b3V0T3ZlcmZsb3dSZWN0KExheW91dFVuaXQgbGlu
ZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBjb25zdAogICAgIHsKLSAgICAgICAgSW50UmVj
dCByZXN1bHQgPSBsYXlvdXRPdmVyZmxvd1JlY3QobGluZVRvcCwgbGluZUJvdHRvbSk7CisgICAg
ICAgIExheW91dFJlY3QgcmVzdWx0ID0gbGF5b3V0T3ZlcmZsb3dSZWN0KGxpbmVUb3AsIGxpbmVC
b3R0b20pOwogICAgICAgICBpZiAoIXJlbmRlcmVyKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkpCiAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQudHJhbnNwb3NlZFJlY3QoKTsKICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBJbnRSZWN0IHZpc3VhbE92ZXJmbG93UmVj
dChpbnQgbGluZVRvcCwgaW50IGxpbmVCb3R0b20pIGNvbnN0CisgICAgTGF5b3V0UmVjdCB2aXN1
YWxPdmVyZmxvd1JlY3QoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20p
IGNvbnN0CiAgICAgeyAKICAgICAgICAgcmV0dXJuIG1fb3ZlcmZsb3cgPyBtX292ZXJmbG93LT52
aXN1YWxPdmVyZmxvd1JlY3QoKSA6IGVuY2xvc2luZ0ludFJlY3QoZnJhbWVSZWN0SW5jbHVkaW5n
TGluZUhlaWdodChsaW5lVG9wLCBsaW5lQm90dG9tKSk7CiAgICAgfQotICAgIGludCBsb2dpY2Fs
TGVmdFZpc3VhbE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdyA/IChpc0hvcml6
b250YWwoKSA/IG1fb3ZlcmZsb3ctPm1pblhWaXN1YWxPdmVyZmxvdygpIDogbV9vdmVyZmxvdy0+
bWluWVZpc3VhbE92ZXJmbG93KCkpIDogbG9naWNhbExlZnQoKTsgfQotICAgIGludCBsb2dpY2Fs
UmlnaHRWaXN1YWxPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3cgPyAoaXNIb3Jp
em9udGFsKCkgPyBtX292ZXJmbG93LT5tYXhYVmlzdWFsT3ZlcmZsb3coKSA6IG1fb3ZlcmZsb3ct
Pm1heFlWaXN1YWxPdmVyZmxvdygpKSA6IGNlaWxmKGxvZ2ljYWxSaWdodCgpKTsgfQotICAgIGlu
dCBsb2dpY2FsVG9wVmlzdWFsT3ZlcmZsb3coaW50IGxpbmVUb3ApIGNvbnN0CisgICAgTGF5b3V0
VW5pdCBsb2dpY2FsTGVmdFZpc3VhbE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxv
dyA/IChpc0hvcml6b250YWwoKSA/IG1fb3ZlcmZsb3ctPm1pblhWaXN1YWxPdmVyZmxvdygpIDog
bV9vdmVyZmxvdy0+bWluWVZpc3VhbE92ZXJmbG93KCkpIDogbG9naWNhbExlZnQoKTsgfQorICAg
IExheW91dFVuaXQgbG9naWNhbFJpZ2h0VmlzdWFsT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBt
X292ZXJmbG93ID8gKGlzSG9yaXpvbnRhbCgpID8gbV9vdmVyZmxvdy0+bWF4WFZpc3VhbE92ZXJm
bG93KCkgOiBtX292ZXJmbG93LT5tYXhZVmlzdWFsT3ZlcmZsb3coKSkgOiBjZWlsZihsb2dpY2Fs
UmlnaHQoKSk7IH0KKyAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3BWaXN1YWxPdmVyZmxvdyhMYXlv
dXRVbml0IGxpbmVUb3ApIGNvbnN0CiAgICAgewogICAgICAgICBpZiAobV9vdmVyZmxvdykKICAg
ICAgICAgICAgIHJldHVybiBpc0hvcml6b250YWwoKSA/IG1fb3ZlcmZsb3ctPm1pbllWaXN1YWxP
dmVyZmxvdygpIDogbV9vdmVyZmxvdy0+bWluWFZpc3VhbE92ZXJmbG93KCk7CiAgICAgICAgIHJl
dHVybiBsaW5lVG9wOwogICAgIH0KLSAgICBpbnQgbG9naWNhbEJvdHRvbVZpc3VhbE92ZXJmbG93
KGludCBsaW5lQm90dG9tKSBjb25zdAorICAgIExheW91dFVuaXQgbG9naWNhbEJvdHRvbVZpc3Vh
bE92ZXJmbG93KExheW91dFVuaXQgbGluZUJvdHRvbSkgY29uc3QKICAgICB7CiAgICAgICAgIGlm
IChtX292ZXJmbG93KQogICAgICAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbCgpID8gbV9vdmVy
Zmxvdy0+bWF4WVZpc3VhbE92ZXJmbG93KCkgOiBtX292ZXJmbG93LT5tYXhYVmlzdWFsT3ZlcmZs
b3coKTsKICAgICAgICAgcmV0dXJuIGxpbmVCb3R0b207CiAgICAgfQotICAgIEludFJlY3QgbG9n
aWNhbFZpc3VhbE92ZXJmbG93UmVjdChpbnQgbGluZVRvcCwgaW50IGxpbmVCb3R0b20pIGNvbnN0
CisgICAgTGF5b3V0UmVjdCBsb2dpY2FsVmlzdWFsT3ZlcmZsb3dSZWN0KExheW91dFVuaXQgbGlu
ZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBjb25zdAogICAgIHsKLSAgICAgICAgSW50UmVj
dCByZXN1bHQgPSB2aXN1YWxPdmVyZmxvd1JlY3QobGluZVRvcCwgbGluZUJvdHRvbSk7CisgICAg
ICAgIExheW91dFJlY3QgcmVzdWx0ID0gdmlzdWFsT3ZlcmZsb3dSZWN0KGxpbmVUb3AsIGxpbmVC
b3R0b20pOwogICAgICAgICBpZiAoIXJlbmRlcmVyKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkpCiAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQudHJhbnNwb3NlZFJlY3QoKTsKICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB2b2lkIHNldE92ZXJmbG93RnJvbUxvZ2lj
YWxSZWN0cyhjb25zdCBJbnRSZWN0JiBsb2dpY2FsTGF5b3V0T3ZlcmZsb3csIGNvbnN0IEludFJl
Y3QmIGxvZ2ljYWxWaXN1YWxPdmVyZmxvdywgaW50IGxpbmVUb3AsIGludCBsaW5lQm90dG9tKTsK
LSAgICB2b2lkIHNldExheW91dE92ZXJmbG93KGNvbnN0IEludFJlY3QmLCBpbnQgbGluZVRvcCwg
aW50IGxpbmVCb3R0b20pOwotICAgIHZvaWQgc2V0VmlzdWFsT3ZlcmZsb3coY29uc3QgSW50UmVj
dCYsIGludCBsaW5lVG9wLCBpbnQgbGluZUJvdHRvbSk7CisgICAgdm9pZCBzZXRPdmVyZmxvd0Zy
b21Mb2dpY2FsUmVjdHMoY29uc3QgTGF5b3V0UmVjdCYgbG9naWNhbExheW91dE92ZXJmbG93LCBj
b25zdCBJbnRSZWN0JiBsb2dpY2FsVmlzdWFsT3ZlcmZsb3csIExheW91dFVuaXQgbGluZVRvcCwg
TGF5b3V0VW5pdCBsaW5lQm90dG9tKTsKKyAgICB2b2lkIHNldExheW91dE92ZXJmbG93KGNvbnN0
IExheW91dFJlY3QmLCBMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJvdHRvbSk7
CisgICAgdm9pZCBzZXRWaXN1YWxPdmVyZmxvdyhjb25zdCBMYXlvdXRSZWN0JiwgTGF5b3V0VW5p
dCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20pOwogCi0gICAgRmxvYXRSZWN0IGZyYW1l
UmVjdEluY2x1ZGluZ0xpbmVIZWlnaHQoaW50IGxpbmVUb3AsIGludCBsaW5lQm90dG9tKSBjb25z
dAorICAgIEZsb2F0UmVjdCBmcmFtZVJlY3RJbmNsdWRpbmdMaW5lSGVpZ2h0KExheW91dFVuaXQg
bGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBjb25zdAogICAgIHsKICAgICAgICAgaWYg
KGlzSG9yaXpvbnRhbCgpKQogICAgICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdChtX3RvcExlZnQu
eCgpLCBsaW5lVG9wLCB3aWR0aCgpLCBsaW5lQm90dG9tIC0gbGluZVRvcCk7CiAgICAgICAgIHJl
dHVybiBGbG9hdFJlY3QobGluZVRvcCwgbV90b3BMZWZ0LnkoKSwgbGluZUJvdHRvbSAtIGxpbmVU
b3AsIGhlaWdodCgpKTsKICAgICB9CiAgICAgCi0gICAgRmxvYXRSZWN0IGxvZ2ljYWxGcmFtZVJl
Y3RJbmNsdWRpbmdMaW5lSGVpZ2h0KGludCBsaW5lVG9wLCBpbnQgbGluZUJvdHRvbSkgY29uc3QK
KyAgICBGbG9hdFJlY3QgbG9naWNhbEZyYW1lUmVjdEluY2x1ZGluZ0xpbmVIZWlnaHQoTGF5b3V0
VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20pIGNvbnN0CiAgICAgewogICAgICAg
ICByZXR1cm4gRmxvYXRSZWN0KGxvZ2ljYWxMZWZ0KCksIGxpbmVUb3AsIGxvZ2ljYWxXaWR0aCgp
LCBsaW5lQm90dG9tIC0gbGluZVRvcCk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmgJKHJldmlzaW9uIDkwNDcxKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTgwNiwyMCArODA2LDIwIEBA
IHByaXZhdGU6CiAKICAgICAgICAgc3RhdGljIGludCBwb3NpdGl2ZU1hcmdpbkJlZm9yZURlZmF1
bHQoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQogICAgICAgICB7IAotICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bWF4KGJsb2NrLT5tYXJnaW5CZWZvcmUoKSwgMCk7CisgICAgICAgICAgICByZXR1
cm4gc3RkOjptYXg8TGF5b3V0VW5pdD4oYmxvY2stPm1hcmdpbkJlZm9yZSgpLCAwKTsKICAgICAg
ICAgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIGludCBuZWdhdGl2ZU1hcmdpbkJlZm9yZURl
ZmF1bHQoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQogICAgICAgICB7IAotICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bWF4KC1ibG9jay0+bWFyZ2luQmVmb3JlKCksIDApOworICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bWF4PExheW91dFVuaXQ+KC1ibG9jay0+bWFyZ2luQmVmb3JlKCksIDApOwog
ICAgICAgICB9CiAgICAgICAgIHN0YXRpYyBpbnQgcG9zaXRpdmVNYXJnaW5BZnRlckRlZmF1bHQo
Y29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
c3RkOjptYXgoYmxvY2stPm1hcmdpbkFmdGVyKCksIDApOworICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bWF4PExheW91dFVuaXQ+KGJsb2NrLT5tYXJnaW5BZnRlcigpLCAwKTsKICAgICAgICAgfQog
ICAgICAgICBzdGF0aWMgaW50IG5lZ2F0aXZlTWFyZ2luQWZ0ZXJEZWZhdWx0KGNvbnN0IFJlbmRl
ckJsb2NrKiBibG9jaykKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KC1i
bG9jay0+bWFyZ2luQWZ0ZXIoKSwgMCk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYXg8TGF5
b3V0VW5pdD4oLWJsb2NrLT5tYXJnaW5BZnRlcigpLCAwKTsKICAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgTWFyZ2luVmFsdWVzIG1fbWFyZ2luczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>