<?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>28945</bug_id>
          
          <creation_ts>2009-09-03 06:10:33 -0700</creation_ts>
          <short_desc>[V8] Squeezed out some performance from string conversion.</short_desc>
          <delta_ts>2009-09-03 06:56:58 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vitaly Repeshko">vitalyr</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>antonm</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>144490</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2009-09-03 06:10:33 -0700</bug_when>
    <thetext>[V8] Squeezed out some performance from string conversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144491</commentid>
    <comment_count>1</comment_count>
      <attachid>38984</attachid>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2009-09-03 06:11:37 -0700</bug_when>
    <thetext>Created attachment 38984
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144500</commentid>
    <comment_count>2</comment_count>
      <attachid>38984</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-03 06:44:35 -0700</bug_when>
    <thetext>Comment on attachment 38984
patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144506</commentid>
    <comment_count>3</comment_count>
      <attachid>38984</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-03 06:56:54 -0700</bug_when>
    <thetext>Comment on attachment 38984
patch

Clearing flags on attachment: 38984

Committed r48020: &lt;http://trac.webkit.org/changeset/48020&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144507</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-03 06:56:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38984</attachid>
            <date>2009-09-03 06:11:37 -0700</date>
            <delta_ts>2009-09-03 06:56:54 -0700</delta_ts>
            <desc>patch</desc>
            <filename>strings.patch</filename>
            <type>text/plain</type>
            <size>10754</size>
            <attacher name="Vitaly Repeshko">vitalyr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTkyZjY2ZC4uMDk0Yjg0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAwOS0wOS0wMyAgVml0YWx5IFJlcGVz
aGtvICA8dml0YWx5ckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW1Y4XSBTcXVlZXplZCBvdXQgc29tZSBwZXJmb3JtYW5jZSBm
cm9tIHN0cmluZyBjb252ZXJzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mjg5NDUKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3RyaW5nUmVzb3VyY2U6OldlYkNvcmVTdHJp
bmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3RyaW5nUmVzb3VyY2U6On5X
ZWJDb3JlU3RyaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN0cmluZ1Jl
c291cmNlOjpkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTdHJpbmdSZXNvdXJjZTo6
bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTdHJpbmdSZXNvdXJjZTo6YXRvbWlj
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTdHJpbmdSZXNvdXJjZTo6c3RyaW5n
KToKKyAgICAgICAgQXZvaWQgY2FsbGluZyB2aXJ0dWFsIGxlbmd0aCBtZXRob2QuIEJlIG1vcmUg
ZXhwbGljaXQgd2l0aAorICAgICAgICBleHRlcm5hbCBtZW1vcnkgY29tcHV0YXRpb24uIEF2b2lk
IGZ1bmN0aW9uIGNhbGxzIGluIGRhdGEgYW5kCisgICAgICAgIGxlbmd0aC4KKyAgICAgICAgKFdl
YkNvcmU6Oik6CisgICAgICAgIChXZWJDb3JlOjp2OFN0cmluZ1RvV2ViQ29yZVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjp2OFN0cmluZ1RvQXRvbWljV2ViQ29yZVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjp2OE5vblN0cmluZ1ZhbHVlVG9XZWJDb3JlU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OnY4Tm9uU3RyaW5nVmFsdWVUb0F0b21pY1dlYkNvcmVTdHJpbmcpOgorICAgICAgICBB
dm9pZCBleHRyYSBjYWxscyBvZiBXZWJDb3JlU3RyaW5nUmVzb3VyY2U6OnRvU3RyaW5nLiBXaGVu
CisgICAgICAgIEF0b21pY1N0cmluZyBpcyBjb21wdXRlZCBwYXNzIGl0IGltbWVkaWF0ZWx5IHdo
ZW4gY29uc3RydWN0aW5nCisgICAgICAgIFdlYkNvcmVTdHJpbmdSZXNvdXJjZS4gVXNlIGlubGlu
ZSBidWZmZXIgZm9yIHNtYWxsIHN0cmluZ3MuCisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5k
aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjp2OFZhbHVlVG9XZWJDb3JlU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OnY4VmFsdWVUb0F0b21pY1dlYkNvcmVTdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9TdHJpbmcpOgorICAgICAgICBJbmxpbmUgZGlzcGF0Y2ggb2Ygc3RyaW5nIHZzLiBu
b24tc3RyaW5nIHZhbHVlcy4KKwogMjAwOS0wOS0wMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4QmluZGluZy5jcHAKaW5kZXggMThmNjMxMS4uMWZiZmU5MCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhC
aW5kaW5nLmNwcApAQCAtNTUsNyArNTUsOCBAQCBwdWJsaWM6CiAjaWZuZGVmIE5ERUJVRwogICAg
ICAgICBtX3RocmVhZElkID0gV1RGOjpjdXJyZW50VGhyZWFkKCk7CiAjZW5kaWYKLSAgICAgICAg
djg6OlY4OjpBZGp1c3RBbW91bnRPZkV4dGVybmFsQWxsb2NhdGVkTWVtb3J5KDIgKiBsZW5ndGgo
KSk7CisgICAgICAgIEFTU0VSVCghc3RyaW5nLmlzTnVsbCgpKTsKKyAgICAgICAgdjg6OlY4OjpB
ZGp1c3RBbW91bnRPZkV4dGVybmFsQWxsb2NhdGVkTWVtb3J5KDIgKiBzdHJpbmcubGVuZ3RoKCkp
OwogICAgIH0KIAogICAgIGV4cGxpY2l0IFdlYkNvcmVTdHJpbmdSZXNvdXJjZShjb25zdCBBdG9t
aWNTdHJpbmcmIHN0cmluZykKQEAgLTY1LDcgKzY2LDggQEAgcHVibGljOgogI2lmbmRlZiBOREVC
VUcKICAgICAgICAgbV90aHJlYWRJZCA9IFdURjo6Y3VycmVudFRocmVhZCgpOwogI2VuZGlmCi0g
ICAgICAgIHY4OjpWODo6QWRqdXN0QW1vdW50T2ZFeHRlcm5hbEFsbG9jYXRlZE1lbW9yeSgyICog
bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoIXN0cmluZy5pc051bGwoKSk7CisgICAgICAgIHY4
OjpWODo6QWRqdXN0QW1vdW50T2ZFeHRlcm5hbEFsbG9jYXRlZE1lbW9yeSgyICogc3RyaW5nLmxl
bmd0aCgpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5XZWJDb3JlU3RyaW5nUmVzb3VyY2UoKQpA
QCAtNzMsMTggKzc1LDE4IEBAIHB1YmxpYzoKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIEFTU0VS
VChtX3RocmVhZElkID09IFdURjo6Y3VycmVudFRocmVhZCgpKTsKICNlbmRpZgotICAgICAgICBp
bnQgcmVkdWNlZEV4dGVybmFsTWVtb3J5ID0gLTIgKiBsZW5ndGgoKTsKLSAgICAgICAgaWYgKCFt
X3BsYWluU3RyaW5nLmltcGwoKS0+aW5UYWJsZSgpKQorICAgICAgICBpbnQgcmVkdWNlZEV4dGVy
bmFsTWVtb3J5ID0gLTIgKiBtX3BsYWluU3RyaW5nLmxlbmd0aCgpOworICAgICAgICBpZiAobV9w
bGFpblN0cmluZy5pbXBsKCkgIT0gbV9hdG9taWNTdHJpbmcuaW1wbCgpICYmICFtX2F0b21pY1N0
cmluZy5pc051bGwoKSkKICAgICAgICAgICAgIHJlZHVjZWRFeHRlcm5hbE1lbW9yeSAqPSAyOwog
ICAgICAgICB2ODo6Vjg6OkFkanVzdEFtb3VudE9mRXh0ZXJuYWxBbGxvY2F0ZWRNZW1vcnkocmVk
dWNlZEV4dGVybmFsTWVtb3J5KTsKICAgICB9CiAKLSAgICBjb25zdCB1aW50MTZfdCogZGF0YSgp
IGNvbnN0CisgICAgdmlydHVhbCBjb25zdCB1aW50MTZfdCogZGF0YSgpIGNvbnN0CiAgICAgewot
ICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MTZfdCo+KG1fcGxhaW5T
dHJpbmcuY2hhcmFjdGVycygpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgdWludDE2X3QqPihtX3BsYWluU3RyaW5nLmltcGwoKS0+Y2hhcmFjdGVycygpKTsKICAgICB9
CiAKLSAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9wbGFpblN0cmluZy5sZW5n
dGgoKTsgfQorICAgIHZpcnR1YWwgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxh
aW5TdHJpbmcuaW1wbCgpLT5sZW5ndGgoKTsgfQogCiAgICAgU3RyaW5nIHdlYmNvcmVTdHJpbmco
KSB7IHJldHVybiBtX3BsYWluU3RyaW5nOyB9CiAKQEAgLTk1LDEyICs5NywxNyBAQCBwdWJsaWM6
CiAjZW5kaWYKICAgICAgICAgaWYgKG1fYXRvbWljU3RyaW5nLmlzTnVsbCgpKSB7CiAgICAgICAg
ICAgICBtX2F0b21pY1N0cmluZyA9IEF0b21pY1N0cmluZyhtX3BsYWluU3RyaW5nKTsKLSAgICAg
ICAgICAgIGlmICghbV9wbGFpblN0cmluZy5pbXBsKCktPmluVGFibGUoKSkKLSAgICAgICAgICAg
ICAgICB2ODo6Vjg6OkFkanVzdEFtb3VudE9mRXh0ZXJuYWxBbGxvY2F0ZWRNZW1vcnkoMiAqIGxl
bmd0aCgpKTsKKyAgICAgICAgICAgIEFTU0VSVCghbV9hdG9taWNTdHJpbmcuaXNOdWxsKCkpOwor
ICAgICAgICAgICAgaWYgKG1fcGxhaW5TdHJpbmcuaW1wbCgpICE9IG1fYXRvbWljU3RyaW5nLmlt
cGwoKSkKKyAgICAgICAgICAgICAgICB2ODo6Vjg6OkFkanVzdEFtb3VudE9mRXh0ZXJuYWxBbGxv
Y2F0ZWRNZW1vcnkoMiAqIG1fYXRvbWljU3RyaW5nLmxlbmd0aCgpKTsKICAgICAgICAgfQogICAg
ICAgICByZXR1cm4gbV9hdG9taWNTdHJpbmc7CiAgICAgfQogCisgICAgLy8gUmV0dXJucyByaWdo
dCBzdHJpbmcgdHlwZSBiYXNlZCBvbiBhIGR1bW15IHBhcmFtZXRlci4KKyAgICBTdHJpbmcgc3Ry
aW5nKFN0cmluZykgeyByZXR1cm4gd2ViY29yZVN0cmluZygpOyB9CisgICAgQXRvbWljU3RyaW5n
IHN0cmluZyhBdG9taWNTdHJpbmcpIHsgcmV0dXJuIGF0b21pY1N0cmluZygpOyB9CisKICAgICBz
dGF0aWMgV2ViQ29yZVN0cmluZ1Jlc291cmNlKiB0b1N0cmluZ1Jlc291cmNlKHY4OjpIYW5kbGU8
djg6OlN0cmluZz4gdjhTdHJpbmcpCiAgICAgewogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
V2ViQ29yZVN0cmluZ1Jlc291cmNlKj4odjhTdHJpbmctPkdldEV4dGVybmFsU3RyaW5nUmVzb3Vy
Y2UoKSk7CkBAIC0xMjEsMTIgKzEyOCwxNyBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi1TdHJp
bmcgdjhTdHJpbmdUb1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6U3RyaW5nPiB2OFN0cmlu
ZywgRXh0ZXJuYWxNb2RlIGV4dGVybmFsLAotICAgICAgICBTdHJpbmdUeXBlIHR5cGUpCitlbnVt
IEV4dGVybmFsTW9kZSB7CisgICAgRXh0ZXJuYWxpemUsCisgICAgRG9Ob3RFeHRlcm5hbGl6ZQor
fTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFN0cmluZ1R5cGU+CitzdGF0aWMgU3RyaW5nVHlwZSB2
OFN0cmluZ1RvV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHY4U3RyaW5nLCBF
eHRlcm5hbE1vZGUgZXh0ZXJuYWwpCiB7CiAgICAgV2ViQ29yZVN0cmluZ1Jlc291cmNlKiBzdHJp
bmdSZXNvdXJjZSA9IFdlYkNvcmVTdHJpbmdSZXNvdXJjZTo6dG9TdHJpbmdSZXNvdXJjZSh2OFN0
cmluZyk7CiAgICAgaWYgKHN0cmluZ1Jlc291cmNlKQotICAgICAgICByZXR1cm4gc3RyaW5nUmVz
b3VyY2UtPndlYmNvcmVTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHN0cmluZ1Jlc291cmNlLT5z
dHJpbmcoU3RyaW5nVHlwZSgpKTsKIAogICAgIGludCBsZW5ndGggPSB2OFN0cmluZy0+TGVuZ3Ro
KCk7CiAgICAgaWYgKCFsZW5ndGgpIHsKQEAgLTEzNCw0MiArMTQ2LDQyIEBAIFN0cmluZyB2OFN0
cmluZ1RvV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHY4U3RyaW5nLCBFeHRl
cm5hbE1vZGUgZXh0CiAgICAgICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0eSgpOwogICAgIH0K
IAotICAgIFVDaGFyKiBidWZmZXI7Ci0gICAgU3RyaW5nIHJlc3VsdCA9IFN0cmluZzo6Y3JlYXRl
VW5pbml0aWFsaXplZChsZW5ndGgsIGJ1ZmZlcik7Ci0gICAgdjhTdHJpbmctPldyaXRlKHJlaW50
ZXJwcmV0X2Nhc3Q8dWludDE2X3QqPihidWZmZXIpLCAwLCBsZW5ndGgpOwotCi0gICAgaWYgKHR5
cGUgPT0gQXRvbWljU3RyaW5nVHlwZSkKLSAgICAgICAgcmVzdWx0ID0gQXRvbWljU3RyaW5nKHJl
c3VsdCk7CisgICAgU3RyaW5nVHlwZSByZXN1bHQ7CisgICAgc3RhdGljIGNvbnN0IGludCBpbmxp
bmVCdWZmZXJTaXplID0gMTY7CisgICAgaWYgKGxlbmd0aCA8PSBpbmxpbmVCdWZmZXJTaXplKSB7
CisgICAgICAgIFVDaGFyIGlubGluZUJ1ZmZlcltpbmxpbmVCdWZmZXJTaXplXTsKKyAgICAgICAg
djhTdHJpbmctPldyaXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDE2X3QqPihpbmxpbmVCdWZmZXIp
LCAwLCBsZW5ndGgpOworICAgICAgICByZXN1bHQgPSBTdHJpbmdUeXBlKGlubGluZUJ1ZmZlciwg
bGVuZ3RoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBVQ2hhciogYnVmZmVyOworICAgICAgICBT
dHJpbmcgdG1wID0gU3RyaW5nOjpjcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCwgYnVmZmVyKTsK
KyAgICAgICAgdjhTdHJpbmctPldyaXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDE2X3QqPihidWZm
ZXIpLCAwLCBsZW5ndGgpOworICAgICAgICByZXN1bHQgPSBTdHJpbmdUeXBlKHRtcCk7CisgICAg
fQogCi0gICAgaWYgKGV4dGVybmFsID09IEV4dGVybmFsaXplKSB7Ci0gICAgICAgIFdlYkNvcmVT
dHJpbmdSZXNvdXJjZSogcmVzb3VyY2UgPSBuZXcgV2ViQ29yZVN0cmluZ1Jlc291cmNlKHJlc3Vs
dCk7Ci0gICAgICAgIGlmICghdjhTdHJpbmctPk1ha2VFeHRlcm5hbChyZXNvdXJjZSkpIHsKKyAg
ICBpZiAoZXh0ZXJuYWwgPT0gRXh0ZXJuYWxpemUgJiYgdjhTdHJpbmctPkNhbk1ha2VFeHRlcm5h
bCgpKSB7CisgICAgICAgIHN0cmluZ1Jlc291cmNlID0gbmV3IFdlYkNvcmVTdHJpbmdSZXNvdXJj
ZShyZXN1bHQpOworICAgICAgICBpZiAoIXY4U3RyaW5nLT5NYWtlRXh0ZXJuYWwoc3RyaW5nUmVz
b3VyY2UpKSB7CiAgICAgICAgICAgICAvLyBJbiBjYXNlIG9mIGEgZmFpbHVyZSBkZWxldGUgdGhl
IGV4dGVybmFsIHJlc291cmNlIGFzIGl0IHdhcyBub3QgdXNlZC4KLSAgICAgICAgICAgIGRlbGV0
ZSByZXNvdXJjZTsKKyAgICAgICAgICAgIGRlbGV0ZSBzdHJpbmdSZXNvdXJjZTsKICAgICAgICAg
fQogICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1BdG9taWNTdHJpbmcgdjhTdHJpbmdU
b0F0b21pY1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6U3RyaW5nPiB2OFN0cmluZykKK1N0
cmluZyB2OFN0cmluZ1RvV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHY4U3Ry
aW5nKQogewotICAgIFdlYkNvcmVTdHJpbmdSZXNvdXJjZSogc3RyaW5nUmVzb3VyY2UgPSBXZWJD
b3JlU3RyaW5nUmVzb3VyY2U6OnRvU3RyaW5nUmVzb3VyY2UodjhTdHJpbmcpOwotICAgIGlmICgh
c3RyaW5nUmVzb3VyY2UpIHsKLSAgICAgICAgaWYgKCF2OFN0cmluZy0+Q2FuTWFrZUV4dGVybmFs
KCkpCi0gICAgICAgICAgICByZXR1cm4gdjhTdHJpbmdUb1dlYkNvcmVTdHJpbmcodjhTdHJpbmcs
IERvTm90RXh0ZXJuYWxpemUsIEF0b21pY1N0cmluZ1R5cGUpOwotICAgICAgICAvLyBJZiB0aGlz
IHN0cmluZyBoYXNuJ3QgYmVlbiBleHRlcm5hbGl6ZWQsIHdlIGZvcmNlIGl0IG5vdy4KLSAgICAg
ICAgdjhTdHJpbmdUb1dlYkNvcmVTdHJpbmcodjhTdHJpbmcsIEV4dGVybmFsaXplLCBBdG9taWNT
dHJpbmdUeXBlKTsKLSAgICAgICAgc3RyaW5nUmVzb3VyY2UgPSBXZWJDb3JlU3RyaW5nUmVzb3Vy
Y2U6OnRvU3RyaW5nUmVzb3VyY2UodjhTdHJpbmcpOwotICAgICAgICBBU1NFUlQoc3RyaW5nUmVz
b3VyY2UpOwotICAgIH0KLSAgICByZXR1cm4gc3RyaW5nUmVzb3VyY2UtPmF0b21pY1N0cmluZygp
OworICAgIHJldHVybiB2OFN0cmluZ1RvV2ViQ29yZVN0cmluZzxTdHJpbmc+KHY4U3RyaW5nLCBF
eHRlcm5hbGl6ZSk7CiB9CiAKLVN0cmluZyB2OFZhbHVlVG9XZWJDb3JlU3RyaW5nKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBvYmplY3QpCitBdG9taWNTdHJpbmcgdjhTdHJpbmdUb0F0b21pY1dlYkNv
cmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6U3RyaW5nPiB2OFN0cmluZykKIHsKLSAgICBpZiAob2Jq
ZWN0LT5Jc1N0cmluZygpKQotICAgICAgICByZXR1cm4gdjhTdHJpbmdUb1dlYkNvcmVTdHJpbmco
djg6OkhhbmRsZTx2ODo6U3RyaW5nPjo6Q2FzdChvYmplY3QpLCBFeHRlcm5hbGl6ZSwgUGxhaW5T
dHJpbmdUeXBlKTsKKyAgICByZXR1cm4gdjhTdHJpbmdUb1dlYkNvcmVTdHJpbmc8QXRvbWljU3Ry
aW5nPih2OFN0cmluZywgRXh0ZXJuYWxpemUpOworfQogCitTdHJpbmcgdjhOb25TdHJpbmdWYWx1
ZVRvV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb2JqZWN0KQoreworICAgIEFT
U0VSVCghb2JqZWN0LT5Jc1N0cmluZygpKTsKICAgICBpZiAob2JqZWN0LT5Jc0ludDMyKCkpIHsK
ICAgICAgICAgaW50IHZhbHVlID0gb2JqZWN0LT5JbnQzMlZhbHVlKCk7CiAgICAgICAgIC8vIE1v
c3QgbnVtYmVycyB1c2VkIGFyZSA8PSAxMDAuIEV2ZW4gaWYgdGhleSBhcmVuJ3QgdXNlZCB0aGVy
ZSdzIHZlcnkgbGl0dGxlIGluIHVzaW5nIHRoZSBzcGFjZS4KQEAgLTE5NSwxNSArMjA3LDEzIEBA
IFN0cmluZyB2OFZhbHVlVG9XZWJDb3JlU3RyaW5nKHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYmpl
Y3QpCiAgICAgICAgIHRocm93RXJyb3IoYmxvY2suRXhjZXB0aW9uKCkpOwogICAgICAgICByZXR1
cm4gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKICAgICB9Ci0gICAgcmV0dXJuIHY4U3RyaW5nVG9XZWJD
b3JlU3RyaW5nKHY4U3RyaW5nLCBEb05vdEV4dGVybmFsaXplLCBQbGFpblN0cmluZ1R5cGUpOwor
ICAgIHJldHVybiB2OFN0cmluZ1RvV2ViQ29yZVN0cmluZzxTdHJpbmc+KHY4U3RyaW5nLCBEb05v
dEV4dGVybmFsaXplKTsKIH0KIAotQXRvbWljU3RyaW5nIHY4VmFsdWVUb0F0b21pY1dlYkNvcmVT
dHJpbmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4VmFsdWUpCitBdG9taWNTdHJpbmcgdjhOb25T
dHJpbmdWYWx1ZVRvQXRvbWljV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb2Jq
ZWN0KQogewotICAgIGlmICh2OFZhbHVlLT5Jc1N0cmluZygpKQotICAgICAgICByZXR1cm4gdjhT
dHJpbmdUb0F0b21pY1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6U3RyaW5nPjo6Q2FzdCh2
OFZhbHVlKSk7Ci0gICAgU3RyaW5nIHN0cmluZyA9IHY4VmFsdWVUb1dlYkNvcmVTdHJpbmcodjhW
YWx1ZSk7Ci0gICAgcmV0dXJuIEF0b21pY1N0cmluZyhzdHJpbmcpOworICAgIEFTU0VSVCghb2Jq
ZWN0LT5Jc1N0cmluZygpKTsKKyAgICByZXR1cm4gQXRvbWljU3RyaW5nKHY4Tm9uU3RyaW5nVmFs
dWVUb1dlYkNvcmVTdHJpbmcob2JqZWN0KSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlN0cmluZz4g
djhTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4QmluZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAppbmRl
eCA2OGVjZDg4Li5hYjJkNjBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Qmlu
ZGluZy5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKQEAgLTM5LDMyICsz
OSwzNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBlbnVtIEV4dGVybmFsTW9kZSB7
Ci0gICAgICAgIEV4dGVybmFsaXplLAotICAgICAgICBEb05vdEV4dGVybmFsaXplCi0gICAgfTsK
LQotICAgIGVudW0gU3RyaW5nVHlwZSB7Ci0gICAgICAgIFBsYWluU3RyaW5nVHlwZSwKLSAgICAg
ICAgQXRvbWljU3RyaW5nVHlwZQotICAgIH07Ci0KICAgICAvLyBDb252ZXJ0IHY4IHR5cGVzIHRv
IGEgV2ViQ29yZTo6U3RyaW5nLiBJZiB0aGUgVjggc3RyaW5nIGlzIG5vdCBhbHJlYWR5CiAgICAg
Ly8gYW4gZXh0ZXJuYWwgc3RyaW5nIHRoZW4gaXQgaXMgdHJhbnNmb3JtZWQgaW50byBhbiBleHRl
cm5hbCBzdHJpbmcgYXQgdGhpcwogICAgIC8vIHBvaW50IHRvIGF2b2lkIHJlcGVhdGVkIGNvbnZl
cnNpb25zLgotICAgIFN0cmluZyB2OFN0cmluZ1RvV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4
OjpTdHJpbmc+LCBFeHRlcm5hbE1vZGUgbW9kZSwgU3RyaW5nVHlwZSB0eXBlKTsKLSAgICBTdHJp
bmcgdjhWYWx1ZVRvV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOworICAgIFN0
cmluZyB2OFN0cmluZ1RvV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpTdHJpbmc+KTsKKyAg
ICBTdHJpbmcgdjhOb25TdHJpbmdWYWx1ZVRvV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4pOworICAgIGlubGluZSBTdHJpbmcgdjhWYWx1ZVRvV2ViQ29yZVN0cmluZyh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUtPklzU3RyaW5n
KCkpCisgICAgICAgICAgICByZXR1cm4gdjhTdHJpbmdUb1dlYkNvcmVTdHJpbmcodjg6OkhhbmRs
ZTx2ODo6U3RyaW5nPjo6Q2FzdCh2YWx1ZSkpOworICAgICAgICByZXR1cm4gdjhOb25TdHJpbmdW
YWx1ZVRvV2ViQ29yZVN0cmluZyh2YWx1ZSk7CisgICAgfQogCiAgICAgLy8gQ29udmVydCB2OCB0
eXBlcyB0byBhIFdlYkNvcmU6OkF0b21pY1N0cmluZy4KICAgICBBdG9taWNTdHJpbmcgdjhTdHJp
bmdUb0F0b21pY1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6U3RyaW5nPik7Ci0gICAgQXRv
bWljU3RyaW5nIHY4VmFsdWVUb0F0b21pY1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6VmFs
dWU+KTsKKyAgICBBdG9taWNTdHJpbmcgdjhOb25TdHJpbmdWYWx1ZVRvQXRvbWljV2ViQ29yZVN0
cmluZyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOworICAgIGlubGluZSBBdG9taWNTdHJpbmcgdjhW
YWx1ZVRvQXRvbWljV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCisg
ICAgeworICAgICAgICBpZiAodmFsdWUtPklzU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
djhTdHJpbmdUb0F0b21pY1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6U3RyaW5nPjo6Q2Fz
dCh2YWx1ZSkpOworICAgICAgICByZXR1cm4gdjhOb25TdHJpbmdWYWx1ZVRvQXRvbWljV2ViQ29y
ZVN0cmluZyh2YWx1ZSk7CisgICAgfQogCiAgICAgLy8gQ29udmVydCBhIHN0cmluZyB0byBhIFY4
IHN0cmluZy4KICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHY4U3RyaW5nKGNvbnN0IFN0cmlu
ZyYpOwogCi0gICAgaW5saW5lIFN0cmluZyB0b1N0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykN
Ci0gICAgew0KLSAgICAgICAgcmV0dXJuIHN0cmluZzsNCisgICAgaW5saW5lIFN0cmluZyB0b1N0
cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIHJldHVybiBzdHJpbmc7
CiAgICAgfQogCiAgICAgLy8gUmV0dXJuIGEgVjggZXh0ZXJuYWwgc3RyaW5nIHRoYXQgc2hhcmVz
IHRoZSB1bmRlcmx5aW5nIGJ1ZmZlciB3aXRoIHRoZSBnaXZlbgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>