<?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>67340</bug_id>
          
          <creation_ts>2011-08-31 16:50:03 -0700</creation_ts>
          <short_desc>Remove simple usage of UString::characters() from JavaScriptCore</short_desc>
          <delta_ts>2011-09-01 13:39:50 -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>JavaScriptCore</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>
          
          <blocked>66661</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>460075</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-08-31 16:50:03 -0700</bug_when>
    <thetext>As part of the changes for https://bugs.webkit.org/show_bug.cgi?id=66161 it would simplify the work if simple usage of the existing UString::characters() method where changed to other forms.

For example, there are many cases where the code does s.characters()[0] which can be directly replaced with s[0].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460678</commentid>
    <comment_count>1</comment_count>
      <attachid>106006</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-09-01 12:16:53 -0700</bug_when>
    <thetext>Created attachment 106006
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460681</commentid>
    <comment_count>2</comment_count>
      <attachid>106006</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-01 12:19:53 -0700</bug_when>
    <thetext>Comment on attachment 106006
Proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460724</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-09-01 13:03:46 -0700</bug_when>
    <thetext>Committed r94336: &lt;http://trac.webkit.org/changeset/94336&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460745</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-01 13:39:50 -0700</bug_when>
    <thetext>This adds code to each call site, checking the number against the length of the string. Is there a measurable performance cost? Should we redo this in a way that does not have performance cost?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106006</attachid>
            <date>2011-09-01 12:16:53 -0700</date>
            <delta_ts>2011-09-01 12:19:53 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>67340-1.patch</filename>
            <type>text/plain</type>
            <size>9446</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTQzMjYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDAgQEAK
KzIwMTEtMDktMDEgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlIHNpbXBsZSB1c2FnZSBvZiBVU3RyaW5nOjpjaGFyYWN0ZXJzKCkgZnJvbSBKYXZh
U2NyaXB0Q29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjczNDAKKworICAgICAgICBJbiBwcmVwYXJhdGlvbiB0byBhbGxvd2luZyBTdHJpbmdJbXBs
IHRvIGJlIGJhY2tlZCBieSA4IGJpdCAKKyAgICAgICAgY2hhcmFjdGVycyB3aGVuIGFwcHJvcHJp
YXRlLCB3ZSBuZWVkIHRvIGVsaW1pbmF0ZSBvciBjaGFuZ2UgdGhlCisgICAgICAgIHVzYWdlIG9m
IFN0cmluZ0ltcGw6OmNoYXJhY3RlcnMoKS4gIE1vc3Qgb2YgdGhlIGNoYW5nZXMgYmVsb3cKKyAg
ICAgICAgY2hhbmdlIHMtPmNoYXJhY3RlcnMoKVswXSB0byBzWzBdLgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6a2V5Rm9yQ2hhcmFjdGVyU3dpdGNoKToKKyAg
ICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6cHJv
Y2Vzc0NsYXVzZUxpc3QpOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoK
KyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBq
aXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6Cisg
ICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKEpTQzo6SWRlbnRpZmll
cjo6YWRkU2xvd0Nhc2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlv
bnMuY3BwOgorICAgICAgICAoSlNDOjpqc1RvTnVtYmVyKToKKyAgICAgICAgKEpTQzo6cGFyc2VG
bG9hdCk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6OkpT
U3RyaW5nOjpzdWJzdHJpbmdGcm9tUm9wZSk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5o
OgorICAgICAgICAoSlNDOjpqc1NpbmdsZUNoYXJhY3RlclN1YnN0cmluZyk6CisgICAgICAgIChK
U0M6OmpzU3RyaW5nKToKKyAgICAgICAgKEpTQzo6anNTdWJzdHJpbmcpOgorICAgICAgICAoSlND
Ojpqc093bmVkU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cC5jcHA6CisgICAgICAg
IChKU0M6OnJlZ0V4cEZsYWdzKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg6
CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6Om9wZXJhdG9yW10pOgorCiAyMDExLTA5LTAx
ICBBZGEgQ2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEV4cG9ydCBmYXN0TWFs
bG9jU3RhdGlzdGljcyBhbmQgSGVhcDo6b2JqZWN0VHlwZUNvdW50cyBmb3IgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTYwLgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJ
KHJldmlzaW9uIDkzOTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNzMsNyArMjI3Myw3IEBA
IHN0YXRpYyBpbnQzMl90IGtleUZvckNoYXJhY3RlclN3aXRjaChFeHAKICAgICBTdHJpbmdJbXBs
KiBjbGF1c2UgPSBzdGF0aWNfY2FzdDxTdHJpbmdOb2RlKj4obm9kZSktPnZhbHVlKCkuaW1wbCgp
OwogICAgIEFTU0VSVChjbGF1c2UtPmxlbmd0aCgpID09IDEpOwogICAgIAotICAgIGludDMyX3Qg
a2V5ID0gY2xhdXNlLT5jaGFyYWN0ZXJzKClbMF07CisgICAgaW50MzJfdCBrZXkgPSAoKmNsYXVz
ZSlbMF07CiAgICAgQVNTRVJUKGtleSA+PSBtaW4pOwogICAgIEFTU0VSVChrZXkgPD0gbWF4KTsK
ICAgICByZXR1cm4ga2V5IC0gbWluOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkocmV2aXNpb24gOTM5MjIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE3NDAsNyArMTc0MCw3IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NDbGF1c2VM
aXN0KENsYXVzZUxpc3QKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNvbnN0IFVTdHJpbmcm
IHZhbHVlID0gc3RhdGljX2Nhc3Q8U3RyaW5nTm9kZSo+KGNsYXVzZUV4cHJlc3Npb24pLT52YWx1
ZSgpLnVzdHJpbmcoKTsKICAgICAgICAgICAgIGlmIChzaW5nbGVDaGFyYWN0ZXJTd2l0Y2ggJj0g
dmFsdWUubGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAgIGludDMyX3QgaW50VmFsID0g
dmFsdWUuaW1wbCgpLT5jaGFyYWN0ZXJzKClbMF07CisgICAgICAgICAgICAgICAgaW50MzJfdCBp
bnRWYWwgPSB2YWx1ZVswXTsKICAgICAgICAgICAgICAgICBpZiAoaW50VmFsIDwgbWluX251bSkK
ICAgICAgICAgICAgICAgICAgICAgbWluX251bSA9IGludFZhbDsKICAgICAgICAgICAgICAgICBp
ZiAoaW50VmFsID4gbWF4X251bSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gOTM5MjIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MDc1LDcgKzQwNzUsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAg
aWYgKHZhbHVlLT5sZW5ndGgoKSAhPSAxKQogICAgICAgICAgICAgICAgIHZQQyArPSBkZWZhdWx0
T2Zmc2V0OwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHZQQyArPSBjb2RlQmxv
Y2stPmNoYXJhY3RlclN3aXRjaEp1bXBUYWJsZSh0YWJsZUluZGV4KS5vZmZzZXRGb3JWYWx1ZSh2
YWx1ZS0+Y2hhcmFjdGVycygpWzBdLCBkZWZhdWx0T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICB2
UEMgKz0gY29kZUJsb2NrLT5jaGFyYWN0ZXJTd2l0Y2hKdW1wVGFibGUodGFibGVJbmRleCkub2Zm
c2V0Rm9yVmFsdWUoKCp2YWx1ZSlbMF0sIGRlZmF1bHRPZmZzZXQpOwogICAgICAgICB9CiAgICAg
ICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gOTM5MjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ1Myw3ICszNDUzLDcgQEAg
REVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCosIG9wX3N3aXRjaF9jaAogICAgIGlmIChzY3J1dGlu
ZWUuaXNTdHJpbmcoKSkgewogICAgICAgICBTdHJpbmdJbXBsKiB2YWx1ZSA9IGFzU3RyaW5nKHNj
cnV0aW5lZSktPnZhbHVlKGNhbGxGcmFtZSkuaW1wbCgpOwogICAgICAgICBpZiAodmFsdWUtPmxl
bmd0aCgpID09IDEpCi0gICAgICAgICAgICByZXN1bHQgPSBjb2RlQmxvY2stPmNoYXJhY3RlclN3
aXRjaEp1bXBUYWJsZSh0YWJsZUluZGV4KS5jdGlGb3JWYWx1ZSh2YWx1ZS0+Y2hhcmFjdGVycygp
WzBdKS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgICAgICAgICAgcmVzdWx0ID0gY29kZUJsb2Nr
LT5jaGFyYWN0ZXJTd2l0Y2hKdW1wVGFibGUodGFibGVJbmRleCkuY3RpRm9yVmFsdWUoKCp2YWx1
ZSlbMF0pLmV4ZWN1dGFibGVBZGRyZXNzKCk7CiAgICAgfQogCiAgICAgQ0hFQ0tfRk9SX0VYQ0VQ
VElPTl9BVF9FTkQoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50
aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lk
ZW50aWZpZXIuY3BwCShyZXZpc2lvbiA5MzkyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzIsNyArMjMyLDcgQEAg
UGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBJZGVudGlmaWVyOjphZGRTbAogICAgIEFTU0VSVChyLT5s
ZW5ndGgoKSk7CiAKICAgICBpZiAoci0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICBVQ2hhciBj
ID0gci0+Y2hhcmFjdGVycygpWzBdOworICAgICAgICBVQ2hhciBjID0gKCpyKVswXTsKICAgICAg
ICAgaWYgKGMgPD0gbWF4U2luZ2xlQ2hhcmFjdGVyU3RyaW5nKQogICAgICAgICAgICAgciA9IGds
b2JhbERhdGEtPnNtYWxsU3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAoYyk7CiAgICAg
ICAgICAgICBpZiAoci0+aXNJZGVudGlmaWVyKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCShy
ZXZpc2lvbiA5MzkyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0RnVuY3Rpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzY3LDcgKzM2Nyw3IEBAIGRv
dWJsZSBqc1RvTnVtYmVyKGNvbnN0IFVTdHJpbmcmIHMpCiAgICAgdW5zaWduZWQgc2l6ZSA9IHMu
bGVuZ3RoKCk7CiAKICAgICBpZiAoc2l6ZSA9PSAxKSB7Ci0gICAgICAgIFVDaGFyIGMgPSBzLmNo
YXJhY3RlcnMoKVswXTsKKyAgICAgICAgVUNoYXIgYyA9IHNbMF07CiAgICAgICAgIGlmIChpc0FT
Q0lJRGlnaXQoYykpCiAgICAgICAgICAgICByZXR1cm4gYyAtICcwJzsKICAgICAgICAgaWYgKGlz
U3RyV2hpdGVTcGFjZShjKSkKQEAgLTQxMCw3ICs0MTAsNyBAQCBzdGF0aWMgZG91YmxlIHBhcnNl
RmxvYXQoY29uc3QgVVN0cmluZyYgCiAgICAgdW5zaWduZWQgc2l6ZSA9IHMubGVuZ3RoKCk7CiAK
ICAgICBpZiAoc2l6ZSA9PSAxKSB7Ci0gICAgICAgIFVDaGFyIGMgPSBzLmNoYXJhY3RlcnMoKVsw
XTsKKyAgICAgICAgVUNoYXIgYyA9IHNbMF07CiAgICAgICAgIGlmIChpc0FTQ0lJRGlnaXQoYykp
CiAgICAgICAgICAgICByZXR1cm4gYyAtICcwJzsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCShyZXZpc2lvbiA5MzkyMikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk0LDcg
KzE5NCw3IEBAIEpTU3RyaW5nKiBKU1N0cmluZzo6c3Vic3RyaW5nRnJvbVJvcGUoRXgKIAogICAg
IGlmIChzdWJzdHJpbmdMZW5ndGggPT0gMSkgewogICAgICAgICBBU1NFUlQoc3Vic3RyaW5nRmli
ZXJDb3VudCA9PSAxKTsKLSAgICAgICAgVUNoYXIgYyA9IHN1YnN0cmluZ0ZpYmVyc1swXS5jaGFy
YWN0ZXJzKClbMF07CisgICAgICAgIFVDaGFyIGMgPSBzdWJzdHJpbmdGaWJlcnNbMF1bMF07CiAg
ICAgICAgIGlmIChjIDw9IG1heFNpbmdsZUNoYXJhY3RlclN0cmluZykKICAgICAgICAgICAgIHJl
dHVybiBnbG9iYWxEYXRhLT5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGdsb2Jh
bERhdGEsIGMpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dHJpbmcuaAkocmV2aXNpb24gOTM5MjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NjAsNyArNTYwLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgewogICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEgPSAmZXhlYy0+
Z2xvYmFsRGF0YSgpOwogICAgICAgICBBU1NFUlQob2Zmc2V0IDwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHMubGVuZ3RoKCkpKTsKLSAgICAgICAgVUNoYXIgYyA9IHMuY2hhcmFjdGVycygpW29mZnNl
dF07CisgICAgICAgIFVDaGFyIGMgPSBzW29mZnNldF07CiAgICAgICAgIGlmIChjIDw9IG1heFNp
bmdsZUNoYXJhY3RlclN0cmluZykKICAgICAgICAgICAgIHJldHVybiBnbG9iYWxEYXRhLT5zbWFs
bFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGdsb2JhbERhdGEsIGMpOwogICAgICAgICBy
ZXR1cm4gZml4dXBWUHRyKGdsb2JhbERhdGEsIEpTU3RyaW5nOjpjcmVhdGUoKmdsb2JhbERhdGEs
IFVTdHJpbmcoU3RyaW5nSW1wbDo6Y3JlYXRlKHMuaW1wbCgpLCBvZmZzZXQsIDEpKSkpOwpAQCAt
NTk1LDcgKzU5NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBpZiAoIXNpemUpCiAgICAg
ICAgICAgICByZXR1cm4gZ2xvYmFsRGF0YS0+c21hbGxTdHJpbmdzLmVtcHR5U3RyaW5nKGdsb2Jh
bERhdGEpOwogICAgICAgICBpZiAoc2l6ZSA9PSAxKSB7Ci0gICAgICAgICAgICBVQ2hhciBjID0g
cy5jaGFyYWN0ZXJzKClbMF07CisgICAgICAgICAgICBVQ2hhciBjID0gc1swXTsKICAgICAgICAg
ICAgIGlmIChjIDw9IG1heFNpbmdsZUNoYXJhY3RlclN0cmluZykKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZ2xvYmFsRGF0YS0+c21hbGxTdHJpbmdzLnNpbmdsZUNoYXJhY3RlclN0cmluZyhnbG9i
YWxEYXRhLCBjKTsKICAgICAgICAgfQpAQCAtNjIzLDcgKzYyMyw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBpZiAoIWxlbmd0aCkKICAgICAgICAgICAgIHJldHVybiBnbG9iYWxEYXRhLT5z
bWFsbFN0cmluZ3MuZW1wdHlTdHJpbmcoZ2xvYmFsRGF0YSk7CiAgICAgICAgIGlmIChsZW5ndGgg
PT0gMSkgewotICAgICAgICAgICAgVUNoYXIgYyA9IHMuY2hhcmFjdGVycygpW29mZnNldF07Cisg
ICAgICAgICAgICBVQ2hhciBjID0gc1tvZmZzZXRdOwogICAgICAgICAgICAgaWYgKGMgPD0gbWF4
U2luZ2xlQ2hhcmFjdGVyU3RyaW5nKQogICAgICAgICAgICAgICAgIHJldHVybiBnbG9iYWxEYXRh
LT5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGdsb2JhbERhdGEsIGMpOwogICAg
ICAgICB9CkBAIC02MzYsNyArNjM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGlmICgh
c2l6ZSkKICAgICAgICAgICAgIHJldHVybiBnbG9iYWxEYXRhLT5zbWFsbFN0cmluZ3MuZW1wdHlT
dHJpbmcoZ2xvYmFsRGF0YSk7CiAgICAgICAgIGlmIChzaXplID09IDEpIHsKLSAgICAgICAgICAg
IFVDaGFyIGMgPSBzLmNoYXJhY3RlcnMoKVswXTsKKyAgICAgICAgICAgIFVDaGFyIGMgPSBzWzBd
OwogICAgICAgICAgICAgaWYgKGMgPD0gbWF4U2luZ2xlQ2hhcmFjdGVyU3RyaW5nKQogICAgICAg
ICAgICAgICAgIHJldHVybiBnbG9iYWxEYXRhLT5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVy
U3RyaW5nKGdsb2JhbERhdGEsIGMpOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAJKHJldmlzaW9uIDkzOTIyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIs
NyBAQCBSZWdFeHBGbGFncyByZWdFeHBGbGFncyhjb25zdCBVU3RyaW5nJiBzCiAgICAgUmVnRXhw
RmxhZ3MgZmxhZ3MgPSBOb0ZsYWdzOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0
cmluZy5sZW5ndGgoKTsgKytpKSB7Ci0gICAgICAgIHN3aXRjaCAoc3RyaW5nLmNoYXJhY3RlcnMo
KVtpXSkgeworICAgICAgICBzd2l0Y2ggKHN0cmluZ1tpXSkgewogICAgICAgICBjYXNlICdnJzoK
ICAgICAgICAgICAgIGlmIChmbGFncyAmIEZsYWdHbG9iYWwpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIEludmFsaWRGbGFnczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaAkocmV2aXNpb24gOTM5MjIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNyAr
MTExLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoIW1fc3RyaW5nLmlzTnVsbCgpKQogICAgICAg
ICAgICAgcmV0dXJuIG1fc3RyaW5nW2ldOwogICAgICAgICBBU1NFUlQobV9idWZmZXIpOwotICAg
ICAgICByZXR1cm4gbV9idWZmZXItPmNoYXJhY3RlcnMoKVtpXTsKKyAgICAgICAgcmV0dXJuICgq
bV9idWZmZXIpW2ldOwogICAgIH0KIAogICAgIHZvaWQgY2xlYXIoKQo=
</data>
<flag name="review"
          id="102339"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>