<?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>83737</bug_id>
          
          <creation_ts>2012-04-11 18:03:45 -0700</creation_ts>
          <short_desc>Inline StringImpl::find(UChar, ...)</short_desc>
          <delta_ts>2012-04-12 19:25:53 -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>Web Template Framework</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>ggaren</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>600774</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-04-11 18:03:45 -0700</bug_when>
    <thetext>The overhead of having a function for StringImpl::find() is significant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600784</commentid>
    <comment_count>1</comment_count>
      <attachid>136803</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-04-11 18:18:08 -0700</bug_when>
    <thetext>Created attachment 136803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601531</commentid>
    <comment_count>2</comment_count>
      <attachid>136803</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-04-12 14:19:05 -0700</bug_when>
    <thetext>Comment on attachment 136803
Patch

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

r=me

&gt; Source/WTF/wtf/text/StringImpl.cpp:-780
&gt; -size_t StringImpl::find(UChar c, unsigned start)

It looks like this code sometimes used &quot;index&quot; and sometimes used &quot;start&quot; for this argument name. FWIW, I slightly prefer &quot;start&quot; over &quot;index&quot;, since it&apos;s more precise.

&gt; Source/WTF/wtf/text/StringImpl.h:484
&gt; +    inline size_t find(UChar character, unsigned index = 0);

No need for &quot;inline&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601762</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-04-12 19:25:53 -0700</bug_when>
    <thetext>Committed r114071: &lt;http://trac.webkit.org/changeset/114071&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136803</attachid>
            <date>2012-04-11 18:18:08 -0700</date>
            <delta_ts>2012-04-12 14:19:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83737-20120411181807.patch</filename>
            <type>text/plain</type>
            <size>7283</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzOTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJhMTQ1NzgxYTU4YTdkNjE4ZmI5MDMw
NWYyMDNmYWQ2Y2EyZmYxMGQuLjI1M2IyNmI1NDRjNjA5NTZlMWU0ZDE2ZjkxODU5YzhlZGE5N2Y1
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMDQtMTEgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5saW5lIFN0cmluZ0ltcGw6OmZpbmQoVUNo
YXIsIC4uLikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgzNzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIGltcGxlbWVudGF0aW9uIG9mIFN0cmluZ0ltcGw6OmZpbmQoKSBpcyBhIHNpbXBsZSBicmFu
Y2ggYmVmb3JlIGludm9raW5nIG9uZSBvZgorICAgICAgICB0d28gaW5saW5lIGZ1bmN0aW9ucy4g
VGhlIG92ZXJoZWFkIG9mIGhhdmluZyBhIGZ1bmN0aW9uIGZvciBTdHJpbmdJbXBsOjpmaW5kKCkg
aXMgc2lnbmlmaWNhbnQuCisKKyAgICAgICAgSXQgaXMgYmV0dGVyIHRvIGxldCB0aGUgY29tcGls
ZXIgZGVjaWRlIGlmIHRoYXQgc2hvdWxkIGJlIGlubGluZWQgb3Igbm90LgorCisgICAgICAgICog
d3RmL3RleHQvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5o
OgorICAgICAgICAoU3RyaW5nSW1wbCk6CisgICAgICAgIChXVEY6OmZpbmQpOgorICAgICAgICAo
V1RGKToKKyAgICAgICAgKFdURjo6cmV2ZXJzZUZpbmQpOgorICAgICAgICAoV1RGOjpTdHJpbmdJ
bXBsOjpmaW5kKToKKyAgICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDoKKwogMjAxMi0wNC0x
MCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMDU4Mzc0OT4gV2ViS2l0MiBzaG91bGQgbG9nIHRvIGJvdGggQVNMIGFuZCBzdGRlcnIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCmluZGV4IGQ5MzM4MTdlNDIwZjExOTIyN2UyMDA4MzM1
MmIwMmQ4YmUzMDA2MjEuLmFlNTAxYjllZTljY2I4ZTMyZDBmM2IyY2I2N2NjNDNlZTFlODY5OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcApAQCAtNzc3LDEzICs3NzcsNiBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0Nhc2UoY29uc3QgVUNoYXIqIGEsIGNvbnN0IFVD
aGFyKiBiLCBpbnQgbGVuZ3RoKQogICAgIHJldHVybiB1bWVtY2FzZWNtcChhLCBiLCBsZW5ndGgp
ID09IDA7CiB9CiAKLXNpemVfdCBTdHJpbmdJbXBsOjpmaW5kKFVDaGFyIGMsIHVuc2lnbmVkIHN0
YXJ0KQotewotICAgIGlmIChpczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIFdURjo6ZmluZChjaGFy
YWN0ZXJzOCgpLCBtX2xlbmd0aCwgYywgc3RhcnQpOwotICAgIHJldHVybiBXVEY6OmZpbmQoY2hh
cmFjdGVyczE2KCksIG1fbGVuZ3RoLCBjLCBzdGFydCk7Ci19Ci0KIHNpemVfdCBTdHJpbmdJbXBs
OjpmaW5kKENoYXJhY3Rlck1hdGNoRnVuY3Rpb25QdHIgbWF0Y2hGdW5jdGlvbiwgdW5zaWduZWQg
c3RhcnQpCiB7CiAgICAgaWYgKGlzOEJpdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdJbXBsLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAppbmRl
eCBkYjMyMmZjZTJiM2Q2ZDgwYzU1Nzc0MGEzMWE3MmMzMjcyM2I0NGUxLi41YmE0YjVkOTY4YWQ5
NDIyMGE2MWM2Nzg1N2M1YTk1ZmUzNjgxMzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0ltcGwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApA
QCAtNDgxLDcgKzQ4MSw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5
cGU+CiAgICAgQUxXQVlTX0lOTElORSBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IHJlbW92ZUNoYXJh
Y3RlcnMoY29uc3QgQ2hhclR5cGUqIGNoYXJhY3RlcnMsIENoYXJhY3Rlck1hdGNoRnVuY3Rpb25Q
dHIpOwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHNpemVfdCBmaW5kKFVDaGFyLCB1bnNpZ25l
ZCBpbmRleCA9IDApOworICAgIGlubGluZSBzaXplX3QgZmluZChVQ2hhciBjaGFyYWN0ZXIsIHVu
c2lnbmVkIGluZGV4ID0gMCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHNpemVfdCBmaW5kKENo
YXJhY3Rlck1hdGNoRnVuY3Rpb25QdHIsIHVuc2lnbmVkIGluZGV4ID0gMCk7CiAgICAgc2l6ZV90
IGZpbmQoY29uc3QgTENoYXIqLCB1bnNpZ25lZCBpbmRleCA9IDApOwogICAgIEFMV0FZU19JTkxJ
TkUgc2l6ZV90IGZpbmQoY29uc3QgY2hhciogcywgdW5zaWduZWQgaW5kZXggPSAwKSB7IHJldHVy
biBmaW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihzKSwgaW5kZXgpOyB9OwpAQCAt
NzM1LDYgKzczNSw3OSBAQCBpbmxpbmUgYm9vbCBlcXVhbElnbm9yaW5nQ2FzZShjb25zdCBjaGFy
KiBhLCBjb25zdCBVQ2hhciogYiwgdW5zaWduZWQgbGVuZ3RoKSB7CiAKIFdURl9FWFBPUlRfUFJJ
VkFURSBib29sIGVxdWFsSWdub3JpbmdOdWxsaXR5KFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKik7
CiAKK2lubGluZSBzaXplX3QgZmluZChjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQg
bGVuZ3RoLCBMQ2hhciBtYXRjaENoYXJhY3RlciwgdW5zaWduZWQgaW5kZXggPSAwKQoreworICAg
IHdoaWxlIChpbmRleCA8IGxlbmd0aCkgeworICAgICAgICBpZiAoY2hhcmFjdGVyc1tpbmRleF0g
PT0gbWF0Y2hDaGFyYWN0ZXIpCisgICAgICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgICAgICsr
aW5kZXg7CisgICAgfQorICAgIHJldHVybiBub3RGb3VuZDsKK30KKworaW5saW5lIHNpemVfdCBm
aW5kKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyIG1hdGNo
Q2hhcmFjdGVyLCB1bnNpZ25lZCBpbmRleCA9IDApCit7CisgICAgd2hpbGUgKGluZGV4IDwgbGVu
Z3RoKSB7CisgICAgICAgIGlmIChjaGFyYWN0ZXJzW2luZGV4XSA9PSBtYXRjaENoYXJhY3RlcikK
KyAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgKytpbmRleDsKKyAgICB9CisgICAg
cmV0dXJuIG5vdEZvdW5kOworfQorCitpbmxpbmUgc2l6ZV90IGZpbmQoY29uc3QgTENoYXIqIGNo
YXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ2hhcmFjdGVyTWF0Y2hGdW5jdGlvblB0ciBtYXRj
aEZ1bmN0aW9uLCB1bnNpZ25lZCBpbmRleCA9IDApCit7CisgICAgd2hpbGUgKGluZGV4IDwgbGVu
Z3RoKSB7CisgICAgICAgIGlmIChtYXRjaEZ1bmN0aW9uKGNoYXJhY3RlcnNbaW5kZXhdKSkKKyAg
ICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgKytpbmRleDsKKyAgICB9CisgICAgcmV0
dXJuIG5vdEZvdW5kOworfQorCitpbmxpbmUgc2l6ZV90IGZpbmQoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ2hhcmFjdGVyTWF0Y2hGdW5jdGlvblB0ciBtYXRjaEZ1
bmN0aW9uLCB1bnNpZ25lZCBpbmRleCA9IDApCit7CisgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3Ro
KSB7CisgICAgICAgIGlmIChtYXRjaEZ1bmN0aW9uKGNoYXJhY3RlcnNbaW5kZXhdKSkKKyAgICAg
ICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgKytpbmRleDsKKyAgICB9CisgICAgcmV0dXJu
IG5vdEZvdW5kOworfQorCitpbmxpbmUgc2l6ZV90IHJldmVyc2VGaW5kKGNvbnN0IExDaGFyKiBj
aGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIExDaGFyIG1hdGNoQ2hhcmFjdGVyLCB1bnNpZ25l
ZCBpbmRleCA9IFVJTlRfTUFYKQoreworICAgIGlmICghbGVuZ3RoKQorICAgICAgICByZXR1cm4g
bm90Rm91bmQ7CisgICAgaWYgKGluZGV4ID49IGxlbmd0aCkKKyAgICAgICAgaW5kZXggPSBsZW5n
dGggLSAxOworICAgIHdoaWxlIChjaGFyYWN0ZXJzW2luZGV4XSAhPSBtYXRjaENoYXJhY3Rlcikg
eworICAgICAgICBpZiAoIWluZGV4LS0pCisgICAgICAgICAgICByZXR1cm4gbm90Rm91bmQ7Cisg
ICAgfQorICAgIHJldHVybiBpbmRleDsKK30KKworaW5saW5lIHNpemVfdCByZXZlcnNlRmluZChj
b25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciBtYXRjaENoYXJh
Y3RlciwgdW5zaWduZWQgaW5kZXggPSBVSU5UX01BWCkKK3sKKyAgICBpZiAoIWxlbmd0aCkKKyAg
ICAgICAgcmV0dXJuIG5vdEZvdW5kOworICAgIGlmIChpbmRleCA+PSBsZW5ndGgpCisgICAgICAg
IGluZGV4ID0gbGVuZ3RoIC0gMTsKKyAgICB3aGlsZSAoY2hhcmFjdGVyc1tpbmRleF0gIT0gbWF0
Y2hDaGFyYWN0ZXIpIHsKKyAgICAgICAgaWYgKCFpbmRleC0tKQorICAgICAgICAgICAgcmV0dXJu
IG5vdEZvdW5kOworICAgIH0KKyAgICByZXR1cm4gaW5kZXg7Cit9CisKK2lubGluZSBzaXplX3Qg
U3RyaW5nSW1wbDo6ZmluZChVQ2hhciBjaGFyYWN0ZXIsIHVuc2lnbmVkIGluZGV4KQoreworICAg
IGlmIChpczhCaXQoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6ZmluZChjaGFyYWN0ZXJzOCgpLCBt
X2xlbmd0aCwgY2hhcmFjdGVyLCBpbmRleCk7CisgICAgcmV0dXJuIFdURjo6ZmluZChjaGFyYWN0
ZXJzMTYoKSwgbV9sZW5ndGgsIGNoYXJhY3RlciwgaW5kZXgpOworfQorCiB0ZW1wbGF0ZTxzaXpl
X3QgaW5saW5lQ2FwYWNpdHk+CiBib29sIGVxdWFsSWdub3JpbmdOdWxsaXR5KGNvbnN0IFZlY3Rv
cjxVQ2hhciwgaW5saW5lQ2FwYWNpdHk+JiBhLCBTdHJpbmdJbXBsKiBiKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
V1RGU3RyaW5nLmgKaW5kZXggZjFmZjM2M2I3MTgxYjMxOGRhZjhiNjFiZGM4NzIzN2Q2ZWQ1Njg3
MS4uOTBjZjM3N2I2OTdiMjcxODkyMTE4ODgxNTIzMTJmNmVlNjdhYTY1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1dURlN0cmluZy5oCkBAIC01MDksNzIgKzUwOSw2IEBAIGlubGluZSBib29sIGNvZGVQb2ludENv
bXBhcmVMZXNzVGhhbihjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikKICAgICByZXR1
cm4gY29kZVBvaW50Q29tcGFyZShhLmltcGwoKSwgYi5pbXBsKCkpIDwgMDsKIH0KIAotaW5saW5l
IHNpemVfdCBmaW5kKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIExD
aGFyIG1hdGNoQ2hhcmFjdGVyLCB1bnNpZ25lZCBpbmRleCA9IDApCi17Ci0gICAgd2hpbGUgKGlu
ZGV4IDwgbGVuZ3RoKSB7Ci0gICAgICAgIGlmIChjaGFyYWN0ZXJzW2luZGV4XSA9PSBtYXRjaENo
YXJhY3RlcikKLSAgICAgICAgICAgIHJldHVybiBpbmRleDsKLSAgICAgICAgKytpbmRleDsKLSAg
ICB9Ci0gICAgcmV0dXJuIG5vdEZvdW5kOwotfQotCi1pbmxpbmUgc2l6ZV90IGZpbmQoY29uc3Qg
VUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIgbWF0Y2hDaGFyYWN0ZXIs
IHVuc2lnbmVkIGluZGV4ID0gMCkKLXsKLSAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHsKLSAg
ICAgICAgaWYgKGNoYXJhY3RlcnNbaW5kZXhdID09IG1hdGNoQ2hhcmFjdGVyKQotICAgICAgICAg
ICAgcmV0dXJuIGluZGV4OwotICAgICAgICArK2luZGV4OwotICAgIH0KLSAgICByZXR1cm4gbm90
Rm91bmQ7Ci19Ci0KLWlubGluZSBzaXplX3QgZmluZChjb25zdCBMQ2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJNYXRjaEZ1bmN0aW9uUHRyIG1hdGNoRnVuY3Rpb24s
IHVuc2lnbmVkIGluZGV4ID0gMCkKLXsKLSAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHsKLSAg
ICAgICAgaWYgKG1hdGNoRnVuY3Rpb24oY2hhcmFjdGVyc1tpbmRleF0pKQotICAgICAgICAgICAg
cmV0dXJuIGluZGV4OwotICAgICAgICArK2luZGV4OwotICAgIH0KLSAgICByZXR1cm4gbm90Rm91
bmQ7Ci19Ci0KLWlubGluZSBzaXplX3QgZmluZChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5z
aWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJNYXRjaEZ1bmN0aW9uUHRyIG1hdGNoRnVuY3Rpb24sIHVu
c2lnbmVkIGluZGV4ID0gMCkKLXsKLSAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHsKLSAgICAg
ICAgaWYgKG1hdGNoRnVuY3Rpb24oY2hhcmFjdGVyc1tpbmRleF0pKQotICAgICAgICAgICAgcmV0
dXJuIGluZGV4OwotICAgICAgICArK2luZGV4OwotICAgIH0KLSAgICByZXR1cm4gbm90Rm91bmQ7
Ci19Ci0KLWlubGluZSBzaXplX3QgcmV2ZXJzZUZpbmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMs
IHVuc2lnbmVkIGxlbmd0aCwgTENoYXIgbWF0Y2hDaGFyYWN0ZXIsIHVuc2lnbmVkIGluZGV4ID0g
VUlOVF9NQVgpCi17Ci0gICAgaWYgKCFsZW5ndGgpCi0gICAgICAgIHJldHVybiBub3RGb3VuZDsK
LSAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKQotICAgICAgICBpbmRleCA9IGxlbmd0aCAtIDE7Ci0g
ICAgd2hpbGUgKGNoYXJhY3RlcnNbaW5kZXhdICE9IG1hdGNoQ2hhcmFjdGVyKSB7Ci0gICAgICAg
IGlmICghaW5kZXgtLSkKLSAgICAgICAgICAgIHJldHVybiBub3RGb3VuZDsKLSAgICB9Ci0gICAg
cmV0dXJuIGluZGV4OwotfQotCi1pbmxpbmUgc2l6ZV90IHJldmVyc2VGaW5kKGNvbnN0IFVDaGFy
KiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyIG1hdGNoQ2hhcmFjdGVyLCB1bnNp
Z25lZCBpbmRleCA9IFVJTlRfTUFYKQotewotICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1
cm4gbm90Rm91bmQ7Ci0gICAgaWYgKGluZGV4ID49IGxlbmd0aCkKLSAgICAgICAgaW5kZXggPSBs
ZW5ndGggLSAxOwotICAgIHdoaWxlIChjaGFyYWN0ZXJzW2luZGV4XSAhPSBtYXRjaENoYXJhY3Rl
cikgewotICAgICAgICBpZiAoIWluZGV4LS0pCi0gICAgICAgICAgICByZXR1cm4gbm90Rm91bmQ7
Ci0gICAgfQotICAgIHJldHVybiBpbmRleDsKLX0KLQogaW5saW5lIHZvaWQgYXBwZW5kKFZlY3Rv
cjxVQ2hhcj4mIHZlY3RvciwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgdmVjdG9yLmFw
cGVuZChzdHJpbmcuY2hhcmFjdGVycygpLCBzdHJpbmcubGVuZ3RoKCkpOwo=
</data>
<flag name="review"
          id="141705"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>