<?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>44104</bug_id>
          
          <creation_ts>2010-08-17 05:52:49 -0700</creation_ts>
          <short_desc>Refactor number parsing in the lexer</short_desc>
          <delta_ts>2010-08-30 01:46:08 -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>PC</rep_platform>
          <op_sys>OS X 10.5</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zoltan Herczeg">zherczeg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>265483</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2010-08-17 05:52:49 -0700</bug_when>
    <thetext>Remove that uncountable number of gotos there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265492</commentid>
    <comment_count>1</comment_count>
      <attachid>64578</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2010-08-17 06:08:24 -0700</bug_when>
    <thetext>Created attachment 64578
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265493</commentid>
    <comment_count>2</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2010-08-17 06:09:57 -0700</bug_when>
    <thetext>SS has no change (forgot to mention in the ChangeLog)

TEST                           COMPARISON            FROM                 TO             DETAILS

=============================================================================

** TOTAL **:                   -                 33.3ms +/- 2.0%   32.7ms +/- 1.1%

=============================================================================

  jquery:                      -                  5.2ms +/- 5.8%    4.9ms +/- 4.6%
    1.3.2:                     -                  5.2ms +/- 5.8%    4.9ms +/- 4.6%

  mootools:                    -                  5.6ms +/- 6.6%    5.5ms +/- 6.8%
    1.2.2-core-nc:             -                  5.6ms +/- 6.6%    5.5ms +/- 6.8%

  prototype:                   -                  6.2ms +/- 4.9%    6.2ms +/- 4.9%
    1.6.0.3:                   -                  6.2ms +/- 4.9%    6.2ms +/- 4.9%

  concat:                      -                 16.3ms +/- 2.1%   16.1ms +/- 1.4%
    jquery-mootools-prototype: -                 16.3ms +/- 2.1%   16.1ms +/- 1.4%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265497</commentid>
    <comment_count>3</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2010-08-17 06:15:24 -0700</bug_when>
    <thetext>Some thoughts:

There is still one got in the code, and I have no idea how to remove that.

Octal numbers seems unsupported in the newest ecmascript:

Past editions of ECMAScript have included additional syntax and semantics for specifying octal literals and octal escape sequences. These have been removed from this edition of ECMAScript.

And octal parsing looks strange to me:
01.1 is invalid, while 09.1 is a valid number (if an octal number followed by &apos;8&apos; or &apos;9&apos; it is considered as a decimal number.)

Although there are regression tests for the current parsing, thus I follow it right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265793</commentid>
    <comment_count>4</comment_count>
      <attachid>64578</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-17 15:11:39 -0700</bug_when>
    <thetext>Comment on attachment 64578
patch

&gt; +        record8(m_current);

Seems a shame we have to do this just in case of the overflow. It would be nice to find a way to skip this in the fast path.

&gt; +    int maximumDigits = !m_buffer8.size() ? 9 : -1;

This is a tricky line of code and needs a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266591</commentid>
    <comment_count>5</comment_count>
      <attachid>64817</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2010-08-19 01:12:51 -0700</bug_when>
    <thetext>Created attachment 64817
patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266595</commentid>
    <comment_count>6</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2010-08-19 01:16:44 -0700</bug_when>
    <thetext>&gt; Seems a shame we have to do this just in case of the overflow. It would be nice to find a way to skip this in the fast path.

The way is found, but the introduced complexity is not necessary worth the efforts.

Now the parsing is slightly faster:

TEST                           COMPARISON            FROM                 TO             DETAILS

=============================================================================

** TOTAL **:                   1.028x as fast    33.3ms +/- 2.0%   32.4ms +/- 1.1%     significant

=============================================================================

  jquery:                      -                  5.2ms +/- 5.8%    5.0ms +/- 0.0%
    1.3.2:                     -                  5.2ms +/- 5.8%    5.0ms +/- 0.0%

  mootools:                    -                  5.6ms +/- 6.6%    5.3ms +/- 6.5%
    1.2.2-core-nc:             -                  5.6ms +/- 6.6%    5.3ms +/- 6.5%

  prototype:                   -                  6.2ms +/- 4.9%    6.1ms +/- 3.7%
    1.6.0.3:                   -                  6.2ms +/- 4.9%    6.1ms +/- 3.7%

  concat:                      -                 16.3ms +/- 2.1%   16.0ms +/- 0.0%
    jquery-mootools-prototype: -                 16.3ms +/- 2.1%   16.0ms +/- 0.0%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266848</commentid>
    <comment_count>7</comment_count>
      <attachid>64817</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-19 11:21:26 -0700</bug_when>
    <thetext>Comment on attachment 64817
patch 2

I don’t have time to review right now. I think the extra complexity is worth it. The fact that it caused a measurable speedup is exciting. I think we can make additional speedups building on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271348</commentid>
    <comment_count>8</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2010-08-30 01:46:08 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/66375
Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64578</attachid>
            <date>2010-08-17 06:08:24 -0700</date>
            <delta_ts>2010-08-19 01:12:51 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-number-parsing.patch</filename>
            <type>text/plain</type>
            <size>10589</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSA0N2JlNDZiMDkyMWQ0ZmE1ZmNkZDJiNzg1OGU4OTNhNjU1YWE2NjFkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2Vk
Lmh1PgpEYXRlOiBUdWUsIDE3IEF1ZyAyMDEwIDE1OjA2OjQxICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gbnVtYmVyIHBhcnNpbmcKClNpZ25lZC1vZmYtYnk6IFpvbHRhbiBIZXJjemVnIDx6aGVyY3pl
Z0BpbmYudS1zemVnZWQuaHU+Ci0tLQogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICB8
ICAgMjEgKysrCiBKYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIHwgIDI4NSArKysrKysr
KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIEphdmFTY3JpcHRDb3JlL3BhcnNlci9M
ZXhlci5oICAgfCAgICA1ICsKIDMgZmlsZXMgY2hhbmdlZCwgMTY3IGluc2VydGlvbnMoKyksIDE0
NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ4YmRiOS4uZTFiMThiOCAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA4LTE3ICBab2x0YW4gSGVyY3plZyAgPHpoZXJjemVn
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVmYWN0b3IgbnVtYmVyIHBhcnNpbmcgaW4gdGhlIGxleGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDEwNAorCisgICAgICAgIE51bWJl
ciBwYXJzaW5nIHdhcyBmdWxsIG9mIGdvdG9zLCBhbmQgbmVlZGVkIGEgY29tcGxldGUKKyAgICAg
ICAgcmVkZXNpZ24gdG8gcmVtb3ZlIHRoZW0gKE9ubHkgb25lIHJlbWFpbmVkKS4gRnVydGhlcm1v
cmUKKyAgICAgICAgaW50ZWdlciBhcml0aG1ldGljIGlzIGVtcG9seWVkIGZvciBmYXN0IGNhc2Vz
ICg9IHNtYWxsCisgICAgICAgIGludGVnZXIgbnVtYmVycykuCisKKyAgICAgICAgKiBwYXJzZXIv
TGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjo6cGFyc2VIZXgpOgorICAgICAgICAoSlND
OjpMZXhlcjo6cGFyc2VPY3RhbCk6CisgICAgICAgIChKU0M6OkxleGVyOjpwYXJzZURlY2ltYWwp
OgorICAgICAgICAoSlNDOjpMZXhlcjo6cGFyc2VOdW1iZXJBZnRlckRlY2ltYWxQb2ludCk6Cisg
ICAgICAgIChKU0M6OkxleGVyOjpwYXJzZU51bWJlckFmdGVyRXhwb25lbnRJbmRpY2F0b3IpOgor
ICAgICAgICAoSlNDOjpMZXhlcjo6bGV4KToKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuaDoKKwog
MjAxMC0wOC0xNSAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAog
ICAgICAgICBbd3hdIEJ1aWxkIGZpeCwgZG9uJ3QgYnVpbGQgaW50ZXJtZWRpYXRlIHNvdXJjZSBp
biBEZXJpdmVkU291cmNlcyBkaXIuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
TGV4ZXIuY3BwIGIvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRleCA4NzdlODlh
Li44MjdhNTM1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCisr
KyBiL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKQEAgLTUzNSw2ICs1MzUsMTA1IEBA
IEFMV0FZU19JTkxJTkUgYm9vbCBMZXhlcjo6cGFyc2VTdHJpbmcoSlNUb2tlbkRhdGEqIGx2YWxw
KQogICAgIHJldHVybiB0cnVlOwogfQogCitBTFdBWVNfSU5MSU5FIHZvaWQgTGV4ZXI6OnBhcnNl
SGV4KGRvdWJsZSYgcmV0dXJuVmFsdWUpCit7CisgICAgLy8gT3B0aW1pemF0aW9uOiBtb3N0IGhl
eGFkZWNpbWFsIHZhbHVlcyBmaXQgaW50byA0IGJ5dGVzLgorICAgIHVpbnQzMl90IGhleFZhbHVl
ID0gMDsKKyAgICBpbnQgbWF4aW11bURpZ2l0cyA9IDg7CisKKyAgICAvLyBTaGlmdCBvdXQgdGhl
ICd4JyBwcmVmaXguCisgICAgc2hpZnQoKTsKKworICAgIGRvIHsKKyAgICAgICAgaWYgKG1heGlt
dW1EaWdpdHMgPj0gMCkgeworICAgICAgICAgICAgaGV4VmFsdWUgPSBoZXhWYWx1ZSAqIDE2ICsg
dG9BU0NJSUhleFZhbHVlKG1fY3VycmVudCk7CisgICAgICAgICAgICBtYXhpbXVtRGlnaXRzLS07
CisgICAgICAgIH0KKyAgICAgICAgcmVjb3JkOChtX2N1cnJlbnQpOworICAgICAgICBzaGlmdCgp
OworICAgIH0gd2hpbGUgKGlzQVNDSUlIZXhEaWdpdChtX2N1cnJlbnQpKTsKKworICAgIGlmICht
YXhpbXVtRGlnaXRzID49IDApCisgICAgICAgIHJldHVyblZhbHVlID0gaGV4VmFsdWU7CisgICAg
ZWxzZQorICAgICAgICByZXR1cm5WYWx1ZSA9IHBhcnNlSW50T3ZlcmZsb3cobV9idWZmZXI4LmRh
dGEoKSwgbV9idWZmZXI4LnNpemUoKSwgMTYpOworfQorCitBTFdBWVNfSU5MSU5FIGJvb2wgTGV4
ZXI6OnBhcnNlT2N0YWwoZG91YmxlJiByZXR1cm5WYWx1ZSkKK3sKKyAgICAvLyBPcHRpbWl6YXRp
b246IG1vc3Qgb2N0YWwgdmFsdWVzIGZpdCBpbnRvIDQgYnl0ZXMuCisgICAgdWludDMyX3Qgb2N0
YWxWYWx1ZSA9IDA7CisgICAgaW50IG1heGltdW1EaWdpdHMgPSAxMDsKKworICAgIGRvIHsKKyAg
ICAgICAgaWYgKG1heGltdW1EaWdpdHMgPj0gMCkgeworICAgICAgICAgICAgb2N0YWxWYWx1ZSA9
IG9jdGFsVmFsdWUgKiA4ICsgKG1fY3VycmVudCAtICcwJyk7CisgICAgICAgICAgICBtYXhpbXVt
RGlnaXRzLS07CisgICAgICAgIH0KKyAgICAgICAgcmVjb3JkOChtX2N1cnJlbnQpOworICAgICAg
ICBzaGlmdCgpOworICAgIH0gd2hpbGUgKGlzQVNDSUlPY3RhbERpZ2l0KG1fY3VycmVudCkpOwor
CisgICAgaWYgKGlzQVNDSUlEaWdpdChtX2N1cnJlbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAobWF4aW11bURpZ2l0cyA+PSAwKQorICAgICAgICByZXR1cm5WYWx1ZSA9IG9j
dGFsVmFsdWU7CisgICAgZWxzZQorICAgICAgICByZXR1cm5WYWx1ZSA9IHBhcnNlSW50T3ZlcmZs
b3cobV9idWZmZXI4LmRhdGEoKSwgbV9idWZmZXI4LnNpemUoKSwgOCk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK0FMV0FZU19JTkxJTkUgYm9vbCBMZXhlcjo6cGFyc2VEZWNpbWFsKGRvdWJsZSYg
cmV0dXJuVmFsdWUpCit7CisgICAgLy8gT3B0aW1pemF0aW9uOiBtb3N0IGRlY2ltYWwgdmFsdWVz
IGZpdCBpbnRvIDQgYnl0ZXMuCisgICAgdWludDMyX3QgZGVjaW1hbFZhbHVlID0gMDsKKyAgICBp
bnQgbWF4aW11bURpZ2l0cyA9ICFtX2J1ZmZlcjguc2l6ZSgpID8gOSA6IC0xOworCisgICAgd2hp
bGUgKGlzQVNDSUlEaWdpdChtX2N1cnJlbnQpKSB7CisgICAgICAgIGlmIChtYXhpbXVtRGlnaXRz
ID49IDApIHsKKyAgICAgICAgICAgIGRlY2ltYWxWYWx1ZSA9IGRlY2ltYWxWYWx1ZSAqIDEwICsg
KG1fY3VycmVudCAtICcwJyk7CisgICAgICAgICAgICBtYXhpbXVtRGlnaXRzLS07CisgICAgICAg
IH0KKyAgICAgICAgcmVjb3JkOChtX2N1cnJlbnQpOworICAgICAgICBzaGlmdCgpOworICAgIH0K
KworICAgIGlmIChtX2N1cnJlbnQgPT0gJy4nIHx8IChtX2N1cnJlbnQgfCAweDIwKSA9PSAnZScg
fHwgbWF4aW11bURpZ2l0cyA8IDApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVy
blZhbHVlID0gZGVjaW1hbFZhbHVlOworICAgIHJldHVybiB0cnVlOworfQorCitBTFdBWVNfSU5M
SU5FIHZvaWQgTGV4ZXI6OnBhcnNlTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQoKQoreworICAgIHJl
Y29yZDgoJy4nKTsKKyAgICB3aGlsZSAoaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpIHsKKyAgICAg
ICAgcmVjb3JkOChtX2N1cnJlbnQpOworICAgICAgICBzaGlmdCgpOworICAgIH0KK30KKworQUxX
QVlTX0lOTElORSBib29sIExleGVyOjpwYXJzZU51bWJlckFmdGVyRXhwb25lbnRJbmRpY2F0b3Io
KQoreworICAgIHJlY29yZDgoJ2UnKTsKKyAgICBzaGlmdCgpOworICAgIGlmIChtX2N1cnJlbnQg
PT0gJysnIHx8IG1fY3VycmVudCA9PSAnLScpIHsKKyAgICAgICAgcmVjb3JkOChtX2N1cnJlbnQp
OworICAgICAgICBzaGlmdCgpOworICAgIH0KKworICAgIGlmICghaXNBU0NJSURpZ2l0KG1fY3Vy
cmVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGRvIHsKKyAgICAgICAgcmVjb3Jk
OChtX2N1cnJlbnQpOworICAgICAgICBzaGlmdCgpOworICAgIH0gd2hpbGUgKGlzQVNDSUlEaWdp
dChtX2N1cnJlbnQpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogSlNUb2tlblR5cGUgTGV4ZXI6
OmxleChKU1Rva2VuRGF0YSogbHZhbHAsIEpTVG9rZW5JbmZvKiBsbG9jcCwgTGV4VHlwZSBsZXhU
eXBlKQogewogICAgIEFTU0VSVCghbV9lcnJvcik7CkBAIC03NTAsMTQgKzg0OSw2IEBAIHN0YXJ0
OgogICAgICAgICB9CiAgICAgICAgIHRva2VuID0gQklUT1I7CiAgICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQ2hhcmFjdGVyRG90OgotICAgICAgICBzaGlmdCgpOwotICAgICAgICBpZiAoaXNBU0NJ
SURpZ2l0KG1fY3VycmVudCkpIHsKLSAgICAgICAgICAgIHJlY29yZDgoJy4nKTsKLSAgICAgICAg
ICAgIGdvdG8gaW5OdW1iZXJBZnRlckRlY2ltYWxQb2ludDsKLSAgICAgICAgfQotICAgICAgICB0
b2tlbiA9IERPVDsKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDaGFyYWN0ZXJPcGVuUGFyZW46
CiAgICAgICAgIHRva2VuID0gT1BFTlBBUkVOOwogICAgICAgICBzaGlmdCgpOwpAQCAtODA2LDEw
ICs4OTcsNTAgQEAgc3RhcnQ6CiAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAgIHRva2VuID0gQ0xP
U0VCUkFDRTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDaGFyYWN0ZXJEb3Q6CisgICAgICAg
IHNoaWZ0KCk7CisgICAgICAgIGlmICghaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpIHsKKyAgICAg
ICAgICAgIHRva2VuID0gRE9UOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgZ290byBpbk51bWJlckFmdGVyRGVjaW1hbFBvaW50OwogICAgIGNhc2UgQ2hhcmFjdGVyWmVy
bzoKLSAgICAgICAgZ290byBzdGFydE51bWJlcldpdGhaZXJvRGlnaXQ7CisgICAgICAgIHNoaWZ0
KCk7CisgICAgICAgIGlmICgobV9jdXJyZW50IHwgMHgyMCkgPT0gJ3gnICYmIGlzQVNDSUlIZXhE
aWdpdChwZWVrKDEpKSkgeworICAgICAgICAgICAgcGFyc2VIZXgobHZhbHAtPmRvdWJsZVZhbHVl
KTsKKyAgICAgICAgICAgIHRva2VuID0gTlVNQkVSOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgcmVjb3JkOCgnMCcpOworICAgICAgICAgICAgaWYgKGlzQVNDSUlPY3RhbERpZ2l0KG1f
Y3VycmVudCkpIHsKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VPY3RhbChsdmFscC0+ZG91Ymxl
VmFsdWUpKQorICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IE5VTUJFUjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICAvLyBGYWxsIHRocm91Z2ggaW50byBDaGFyYWN0ZXJOdW1i
ZXIKICAgICBjYXNlIENoYXJhY3Rlck51bWJlcjoKLSAgICAgICAgZ290byBzdGFydE51bWJlcjsK
KyAgICAgICAgaWYgKExJS0VMWSh0b2tlbiAhPSBOVU1CRVIpKSB7CisgICAgICAgICAgICBpZiAo
IXBhcnNlRGVjaW1hbChsdmFscC0+ZG91YmxlVmFsdWUpKSB7CisgICAgICAgICAgICAgICAgaWYg
KG1fY3VycmVudCA9PSAnLicpIHsKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKK2luTnVt
YmVyQWZ0ZXJEZWNpbWFsUG9pbnQ6CisgICAgICAgICAgICAgICAgICAgIHBhcnNlTnVtYmVyQWZ0
ZXJEZWNpbWFsUG9pbnQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYg
KChtX2N1cnJlbnQgfCAweDIwKSA9PSAnZScpCisgICAgICAgICAgICAgICAgICAgIGlmICghcGFy
c2VOdW1iZXJBZnRlckV4cG9uZW50SW5kaWNhdG9yKCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICBnb3RvIHJldHVybkVycm9yOworICAgICAgICAgICAgICAgIC8vIE51bGwtdGVybWluYXRlIHN0
cmluZyBmb3Igc3RydG9kLgorICAgICAgICAgICAgICAgIG1fYnVmZmVyOC5hcHBlbmQoJ1wwJyk7
CisgICAgICAgICAgICAgICAgbHZhbHAtPmRvdWJsZVZhbHVlID0gV1RGOjpzdHJ0b2QobV9idWZm
ZXI4LmRhdGEoKSwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0b2tlbiA9IE5VTUJF
UjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vIGlkZW50aWZpZXJzIGFsbG93ZWQgZGlyZWN0
bHkgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsLCBlLmcuICIzaW4iIGlzIGJhZC4KKyAgICAgICAgaWYg
KFVOTElLRUxZKGlzSWRlbnRTdGFydChtX2N1cnJlbnQpKSkKKyAgICAgICAgICAgIGdvdG8gcmV0
dXJuRXJyb3I7CisgICAgICAgIG1fYnVmZmVyOC5yZXNpemUoMCk7CisgICAgICAgIG1fZGVsaW1p
dGVkID0gZmFsc2U7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2hhcmFjdGVyUXVvdGU6CiAg
ICAgICAgIGlmIChVTkxJS0VMWSghcGFyc2VTdHJpbmcobHZhbHApKSkKICAgICAgICAgICAgIGdv
dG8gcmV0dXJuRXJyb3I7CkBAIC04NzgsMTQwICsxMDA5LDYgQEAgaW5NdWx0aUxpbmVDb21tZW50
OgogICAgIG1fYXRMaW5lU3RhcnQgPSBmYWxzZTsKICAgICBnb3RvIHN0YXJ0OwogCi1zdGFydE51
bWJlcldpdGhaZXJvRGlnaXQ6Ci0gICAgc2hpZnQoKTsKLSAgICBpZiAoKG1fY3VycmVudCB8IDB4
MjApID09ICd4JyAmJiBpc0FTQ0lJSGV4RGlnaXQocGVlaygxKSkpIHsKLSAgICAgICAgc2hpZnQo
KTsKLSAgICAgICAgZ290byBpbkhleDsKLSAgICB9Ci0gICAgaWYgKG1fY3VycmVudCA9PSAnLicp
IHsKLSAgICAgICAgcmVjb3JkOCgnMCcpOwotICAgICAgICByZWNvcmQ4KCcuJyk7Ci0gICAgICAg
IHNoaWZ0KCk7Ci0gICAgICAgIGdvdG8gaW5OdW1iZXJBZnRlckRlY2ltYWxQb2ludDsKLSAgICB9
Ci0gICAgaWYgKChtX2N1cnJlbnQgfCAweDIwKSA9PSAnZScpIHsKLSAgICAgICAgcmVjb3JkOCgn
MCcpOwotICAgICAgICByZWNvcmQ4KCdlJyk7Ci0gICAgICAgIHNoaWZ0KCk7Ci0gICAgICAgIGdv
dG8gaW5FeHBvbmVudEluZGljYXRvcjsKLSAgICB9Ci0gICAgaWYgKGlzQVNDSUlPY3RhbERpZ2l0
KG1fY3VycmVudCkpCi0gICAgICAgIGdvdG8gaW5PY3RhbDsKLSAgICBpZiAoaXNBU0NJSURpZ2l0
KG1fY3VycmVudCkpCi0gICAgICAgIGdvdG8gc3RhcnROdW1iZXI7Ci0gICAgbHZhbHAtPmRvdWJs
ZVZhbHVlID0gMDsKLSAgICBnb3RvIGRvbmVOdW1lcmljOwotCi1pbk51bWJlckFmdGVyRGVjaW1h
bFBvaW50OgotICAgIHdoaWxlIChpc0FTQ0lJRGlnaXQobV9jdXJyZW50KSkgewotICAgICAgICBy
ZWNvcmQ4KG1fY3VycmVudCk7Ci0gICAgICAgIHNoaWZ0KCk7Ci0gICAgfQotICAgIGlmICgobV9j
dXJyZW50IHwgMHgyMCkgPT0gJ2UnKSB7Ci0gICAgICAgIHJlY29yZDgoJ2UnKTsKLSAgICAgICAg
c2hpZnQoKTsKLSAgICAgICAgZ290byBpbkV4cG9uZW50SW5kaWNhdG9yOwotICAgIH0KLSAgICBn
b3RvIGRvbmVOdW1iZXI7Ci0KLWluRXhwb25lbnRJbmRpY2F0b3I6Ci0gICAgaWYgKG1fY3VycmVu
dCA9PSAnKycgfHwgbV9jdXJyZW50ID09ICctJykgewotICAgICAgICByZWNvcmQ4KG1fY3VycmVu
dCk7Ci0gICAgICAgIHNoaWZ0KCk7Ci0gICAgfQotICAgIGlmICghaXNBU0NJSURpZ2l0KG1fY3Vy
cmVudCkpCi0gICAgICAgIGdvdG8gcmV0dXJuRXJyb3I7Ci0gICAgZG8gewotICAgICAgICByZWNv
cmQ4KG1fY3VycmVudCk7Ci0gICAgICAgIHNoaWZ0KCk7Ci0gICAgfSB3aGlsZSAoaXNBU0NJSURp
Z2l0KG1fY3VycmVudCkpOwotICAgIGdvdG8gZG9uZU51bWJlcjsKLQotaW5PY3RhbDogewotICAg
IGRvIHsKLSAgICAgICAgcmVjb3JkOChtX2N1cnJlbnQpOwotICAgICAgICBzaGlmdCgpOwotICAg
IH0gd2hpbGUgKGlzQVNDSUlPY3RhbERpZ2l0KG1fY3VycmVudCkpOwotICAgIGlmIChpc0FTQ0lJ
RGlnaXQobV9jdXJyZW50KSkKLSAgICAgICAgZ290byBzdGFydE51bWJlcjsKLQotICAgIGRvdWJs
ZSBkdmFsID0gMDsKLQotICAgIGNvbnN0IGNoYXIqIGVuZCA9IG1fYnVmZmVyOC5lbmQoKTsKLSAg
ICBmb3IgKGNvbnN0IGNoYXIqIHAgPSBtX2J1ZmZlcjguZGF0YSgpOyBwIDwgZW5kOyArK3ApIHsK
LSAgICAgICAgZHZhbCAqPSA4OwotICAgICAgICBkdmFsICs9ICpwIC0gJzAnOwotICAgIH0KLSAg
ICBpZiAoZHZhbCA+PSBtYW50aXNzYU92ZXJmbG93TG93ZXJCb3VuZCkKLSAgICAgICAgZHZhbCA9
IHBhcnNlSW50T3ZlcmZsb3cobV9idWZmZXI4LmRhdGEoKSwgZW5kIC0gbV9idWZmZXI4LmRhdGEo
KSwgOCk7Ci0KLSAgICBtX2J1ZmZlcjgucmVzaXplKDApOwotCi0gICAgbHZhbHAtPmRvdWJsZVZh
bHVlID0gZHZhbDsKLSAgICBnb3RvIGRvbmVOdW1lcmljOwotfQotCi1pbkhleDogewotICAgIGRv
IHsKLSAgICAgICAgcmVjb3JkOChtX2N1cnJlbnQpOwotICAgICAgICBzaGlmdCgpOwotICAgIH0g
d2hpbGUgKGlzQVNDSUlIZXhEaWdpdChtX2N1cnJlbnQpKTsKLQotICAgIGRvdWJsZSBkdmFsID0g
MDsKLQotICAgIGNvbnN0IGNoYXIqIGVuZCA9IG1fYnVmZmVyOC5lbmQoKTsKLSAgICBmb3IgKGNv
bnN0IGNoYXIqIHAgPSBtX2J1ZmZlcjguZGF0YSgpOyBwIDwgZW5kOyArK3ApIHsKLSAgICAgICAg
ZHZhbCAqPSAxNjsKLSAgICAgICAgZHZhbCArPSB0b0FTQ0lJSGV4VmFsdWUoKnApOwotICAgIH0K
LSAgICBpZiAoZHZhbCA+PSBtYW50aXNzYU92ZXJmbG93TG93ZXJCb3VuZCkKLSAgICAgICAgZHZh
bCA9IHBhcnNlSW50T3ZlcmZsb3cobV9idWZmZXI4LmRhdGEoKSwgZW5kIC0gbV9idWZmZXI4LmRh
dGEoKSwgMTYpOwotCi0gICAgbV9idWZmZXI4LnJlc2l6ZSgwKTsKLQotICAgIGx2YWxwLT5kb3Vi
bGVWYWx1ZSA9IGR2YWw7Ci0gICAgZ290byBkb25lTnVtZXJpYzsKLX0KLQotc3RhcnROdW1iZXI6
Ci0gICAgcmVjb3JkOChtX2N1cnJlbnQpOwotICAgIHNoaWZ0KCk7Ci0gICAgd2hpbGUgKGlzQVND
SUlEaWdpdChtX2N1cnJlbnQpKSB7Ci0gICAgICAgIHJlY29yZDgobV9jdXJyZW50KTsKLSAgICAg
ICAgc2hpZnQoKTsKLSAgICB9Ci0gICAgaWYgKG1fY3VycmVudCA9PSAnLicpIHsKLSAgICAgICAg
cmVjb3JkOCgnLicpOwotICAgICAgICBzaGlmdCgpOwotICAgICAgICBnb3RvIGluTnVtYmVyQWZ0
ZXJEZWNpbWFsUG9pbnQ7Ci0gICAgfQotICAgIGlmICgobV9jdXJyZW50IHwgMHgyMCkgPT0gJ2Un
KSB7Ci0gICAgICAgIHJlY29yZDgoJ2UnKTsKLSAgICAgICAgc2hpZnQoKTsKLSAgICAgICAgZ290
byBpbkV4cG9uZW50SW5kaWNhdG9yOwotICAgIH0KLQotICAgIC8vIEZhbGwgdGhyb3VnaCBpbnRv
IGRvbmVOdW1iZXIuCi0KLWRvbmVOdW1iZXI6Ci0gICAgLy8gTnVsbC10ZXJtaW5hdGUgc3RyaW5n
IGZvciBzdHJ0b2QuCi0gICAgbV9idWZmZXI4LmFwcGVuZCgnXDAnKTsKLSAgICBsdmFscC0+ZG91
YmxlVmFsdWUgPSBXVEY6OnN0cnRvZChtX2J1ZmZlcjguZGF0YSgpLCAwKTsKLSAgICBtX2J1ZmZl
cjgucmVzaXplKDApOwotCi0gICAgLy8gRmFsbCB0aHJvdWdoIGludG8gZG9uZU51bWVyaWMuCi0K
LWRvbmVOdW1lcmljOgotICAgIC8vIE5vIGlkZW50aWZpZXJzIGFsbG93ZWQgZGlyZWN0bHkgYWZ0
ZXIgbnVtZXJpYyBsaXRlcmFsLCBlLmcuICIzaW4iIGlzIGJhZC4KLSAgICBpZiAoVU5MSUtFTFko
aXNJZGVudFN0YXJ0KG1fY3VycmVudCkpKQotICAgICAgICBnb3RvIHJldHVybkVycm9yOwotCi0g
ICAgbV9hdExpbmVTdGFydCA9IGZhbHNlOwotICAgIG1fZGVsaW1pdGVkID0gZmFsc2U7Ci0gICAg
dG9rZW4gPSBOVU1CRVI7Ci0gICAgZ290byByZXR1cm5Ub2tlbjsKLQogZG9uZVNlbWljb2xvbjoK
ICAgICB0b2tlbiA9IFNFTUlDT0xPTjsKICAgICBtX2RlbGltaXRlZCA9IHRydWU7CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuaCBiL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9MZXhlci5oCmluZGV4IDNkOTdjYzEuLmRhODRhNmIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9MZXhlci5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCkBA
IC05Niw2ICs5NiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBBTFdBWVNfSU5MSU5F
IEpTVG9rZW5UeXBlIHBhcnNlSWRlbnRpZmllcihKU1Rva2VuRGF0YSosIExleFR5cGUpOwogICAg
ICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGFyc2VTdHJpbmcoSlNUb2tlbkRhdGEqIGx2YWxwKTsK
KyAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIHBhcnNlSGV4KGRvdWJsZSYgcmV0dXJuVmFsdWUp
OworICAgICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGFyc2VPY3RhbChkb3VibGUmIHJldHVyblZh
bHVlKTsKKyAgICAgICAgQUxXQVlTX0lOTElORSBib29sIHBhcnNlRGVjaW1hbChkb3VibGUmIHJl
dHVyblZhbHVlKTsKKyAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIHBhcnNlTnVtYmVyQWZ0ZXJE
ZWNpbWFsUG9pbnQoKTsKKyAgICAgICAgQUxXQVlTX0lOTElORSBib29sIHBhcnNlTnVtYmVyQWZ0
ZXJFeHBvbmVudEluZGljYXRvcigpOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW5p
dGlhbFJlYWRCdWZmZXJDYXBhY2l0eSA9IDMyOwogCi0tIAoxLjYuMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64817</attachid>
            <date>2010-08-19 01:12:51 -0700</date>
            <delta_ts>2010-08-29 11:34:38 -0700</delta_ts>
            <desc>patch 2</desc>
            <filename>0001-number-parsing.patch</filename>
            <type>text/plain</type>
            <size>11816</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSA1MzZkNmFiMjkwODYyZjI4ODI3NmIwNzU3ZDc3NzRhNjNkMjczYTEwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2Vk
Lmh1PgpEYXRlOiBUaHUsIDE5IEF1ZyAyMDEwIDEwOjA4OjQ2ICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gbnVtYmVyIHBhcnNpbmcKClNpZ25lZC1vZmYtYnk6IFpvbHRhbiBIZXJjemVnIDx6aGVyY3pl
Z0BpbmYudS1zemVnZWQuaHU+Ci0tLQogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICB8
ICAgMjEgKysrCiBKYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIHwgIDMyNiArKysrKysr
KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIEphdmFTY3JpcHRDb3JlL3BhcnNlci9M
ZXhlci5oICAgfCAgICA1ICsKIDMgZmlsZXMgY2hhbmdlZCwgMjA4IGluc2VydGlvbnMoKyksIDE0
NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ4YmRiOS4uZTFiMThiOCAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA4LTE3ICBab2x0YW4gSGVyY3plZyAgPHpoZXJjemVn
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVmYWN0b3IgbnVtYmVyIHBhcnNpbmcgaW4gdGhlIGxleGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDEwNAorCisgICAgICAgIE51bWJl
ciBwYXJzaW5nIHdhcyBmdWxsIG9mIGdvdG9zLCBhbmQgbmVlZGVkIGEgY29tcGxldGUKKyAgICAg
ICAgcmVkZXNpZ24gdG8gcmVtb3ZlIHRoZW0gKE9ubHkgb25lIHJlbWFpbmVkKS4gRnVydGhlcm1v
cmUKKyAgICAgICAgaW50ZWdlciBhcml0aG1ldGljIGlzIGVtcG9seWVkIGZvciBmYXN0IGNhc2Vz
ICg9IHNtYWxsCisgICAgICAgIGludGVnZXIgbnVtYmVycykuCisKKyAgICAgICAgKiBwYXJzZXIv
TGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjo6cGFyc2VIZXgpOgorICAgICAgICAoSlND
OjpMZXhlcjo6cGFyc2VPY3RhbCk6CisgICAgICAgIChKU0M6OkxleGVyOjpwYXJzZURlY2ltYWwp
OgorICAgICAgICAoSlNDOjpMZXhlcjo6cGFyc2VOdW1iZXJBZnRlckRlY2ltYWxQb2ludCk6Cisg
ICAgICAgIChKU0M6OkxleGVyOjpwYXJzZU51bWJlckFmdGVyRXhwb25lbnRJbmRpY2F0b3IpOgor
ICAgICAgICAoSlNDOjpMZXhlcjo6bGV4KToKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuaDoKKwog
MjAxMC0wOC0xNSAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAog
ICAgICAgICBbd3hdIEJ1aWxkIGZpeCwgZG9uJ3QgYnVpbGQgaW50ZXJtZWRpYXRlIHNvdXJjZSBp
biBEZXJpdmVkU291cmNlcyBkaXIuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
TGV4ZXIuY3BwIGIvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRleCA4NzdlODlh
Li4yNGM3NzQ5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCisr
KyBiL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKQEAgLTUzNSw2ICs1MzUsMTQ2IEBA
IEFMV0FZU19JTkxJTkUgYm9vbCBMZXhlcjo6cGFyc2VTdHJpbmcoSlNUb2tlbkRhdGEqIGx2YWxw
KQogICAgIHJldHVybiB0cnVlOwogfQogCitBTFdBWVNfSU5MSU5FIHZvaWQgTGV4ZXI6OnBhcnNl
SGV4KGRvdWJsZSYgcmV0dXJuVmFsdWUpCit7CisgICAgLy8gT3B0aW1pemF0aW9uOiBtb3N0IGhl
eGFkZWNpbWFsIHZhbHVlcyBmaXQgaW50byA0IGJ5dGVzLgorICAgIHVpbnQzMl90IGhleFZhbHVl
ID0gMDsKKyAgICBpbnQgbWF4aW11bURpZ2l0cyA9IDc7CisKKyAgICAvLyBTaGlmdCBvdXQgdGhl
ICd4JyBwcmVmaXguCisgICAgc2hpZnQoKTsKKworICAgIGRvIHsKKyAgICAgICAgaGV4VmFsdWUg
PSAoaGV4VmFsdWUgPDwgNCkgKyB0b0FTQ0lJSGV4VmFsdWUobV9jdXJyZW50KTsKKyAgICAgICAg
c2hpZnQoKTsKKyAgICAgICAgLS1tYXhpbXVtRGlnaXRzOworICAgIH0gd2hpbGUgKGlzQVNDSUlI
ZXhEaWdpdChtX2N1cnJlbnQpICYmIG1heGltdW1EaWdpdHMgPj0gMCk7CisKKyAgICBpZiAobWF4
aW11bURpZ2l0cyA+PSAwKSB7CisgICAgICAgIHJldHVyblZhbHVlID0gaGV4VmFsdWU7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBObyBtb3JlIHBsYWNlIGluIHRoZSBoZXhWYWx1
ZSBidWZmZXIuCisgICAgLy8gVGhlIHZhbHVlcyBhcmUgc2hpZnRlZCBvdXQgYW5kIHBsYWNlZCBp
bnRvIHRoZSBtX2J1ZmZlcjggdmVjdG9yLgorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgODsgKytp
KSB7CisgICAgICAgICBpbnQgZGlnaXQgPSBoZXhWYWx1ZSA+PiAyODsKKyAgICAgICAgIGlmIChk
aWdpdCA8IDEwKQorICAgICAgICAgICAgIHJlY29yZDgoZGlnaXQgKyAnMCcpOworICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgIHJlY29yZDgoZGlnaXQgLSAxMCArICdhJyk7CisgICAgICAgICBo
ZXhWYWx1ZSA8PD0gNDsKKyAgICB9CisKKyAgICB3aGlsZSAoaXNBU0NJSUhleERpZ2l0KG1fY3Vy
cmVudCkpIHsKKyAgICAgICAgcmVjb3JkOChtX2N1cnJlbnQpOworICAgICAgICBzaGlmdCgpOwor
ICAgIH0KKworICAgIHJldHVyblZhbHVlID0gcGFyc2VJbnRPdmVyZmxvdyhtX2J1ZmZlcjguZGF0
YSgpLCBtX2J1ZmZlcjguc2l6ZSgpLCAxNik7Cit9CisKK0FMV0FZU19JTkxJTkUgYm9vbCBMZXhl
cjo6cGFyc2VPY3RhbChkb3VibGUmIHJldHVyblZhbHVlKQoreworICAgIC8vIE9wdGltaXphdGlv
bjogbW9zdCBvY3RhbCB2YWx1ZXMgZml0IGludG8gNCBieXRlcy4KKyAgICB1aW50MzJfdCBvY3Rh
bFZhbHVlID0gMDsKKyAgICBpbnQgbWF4aW11bURpZ2l0cyA9IDk7CisgICAgLy8gVGVtcG9yYXJ5
IGJ1ZmZlciBmb3IgdGhlIGRpZ2l0cy4gTWFrZXMgZWFzaWVyCisgICAgLy8gdG8gcmVjb25zdHJ1
Y3QgdGhlIGlucHV0IGNoYXJhY3RlcnMgd2hlbiBuZWVkZWQuCisgICAgY2hhciBkaWdpdHNbMTBd
OworCisgICAgZG8geworICAgICAgICBvY3RhbFZhbHVlID0gb2N0YWxWYWx1ZSAqIDggKyAobV9j
dXJyZW50IC0gJzAnKTsKKyAgICAgICAgZGlnaXRzW21heGltdW1EaWdpdHNdID0gbV9jdXJyZW50
OworICAgICAgICBzaGlmdCgpOworICAgICAgICAtLW1heGltdW1EaWdpdHM7CisgICAgfSB3aGls
ZSAoaXNBU0NJSU9jdGFsRGlnaXQobV9jdXJyZW50KSAmJiBtYXhpbXVtRGlnaXRzID49IDApOwor
CisgICAgaWYgKCFpc0FTQ0lJRGlnaXQobV9jdXJyZW50KSAmJiBtYXhpbXVtRGlnaXRzID49IDAp
IHsKKyAgICAgICAgcmV0dXJuVmFsdWUgPSBvY3RhbFZhbHVlOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICBmb3IgKGludCBpID0gOTsgaSA+IG1heGltdW1EaWdpdHM7IC0taSkK
KyAgICAgICAgIHJlY29yZDgoZGlnaXRzW2ldKTsKKworICAgIHdoaWxlIChpc0FTQ0lJT2N0YWxE
aWdpdChtX2N1cnJlbnQpKSB7CisgICAgICAgIHJlY29yZDgobV9jdXJyZW50KTsKKyAgICAgICAg
c2hpZnQoKTsKKyAgICB9CisKKyAgICBpZiAoaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVyblZhbHVlID0gcGFyc2VJbnRPdmVyZmxvdyht
X2J1ZmZlcjguZGF0YSgpLCBtX2J1ZmZlcjguc2l6ZSgpLCA4KTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworQUxXQVlTX0lOTElORSBib29sIExleGVyOjpwYXJzZURlY2ltYWwoZG91YmxlJiByZXR1
cm5WYWx1ZSkKK3sKKyAgICAvLyBPcHRpbWl6YXRpb246IG1vc3QgZGVjaW1hbCB2YWx1ZXMgZml0
IGludG8gNCBieXRlcy4KKyAgICB1aW50MzJfdCBkZWNpbWFsVmFsdWUgPSAwOworCisgICAgLy8g
U2luY2UgcGFyc2VPY3RhbCBtYXkgYmUgZXhlY3V0ZWQgYmVmb3JlIHBhcnNlRGVjaW1hbCwKKyAg
ICAvLyB0aGUgbV9idWZmZXI4IG1heSBob2xkIGFzY2lpIGRpZ2l0cy4KKyAgICBpZiAoIW1fYnVm
ZmVyOC5zaXplKCkpIHsKKyAgICAgICAgaW50IG1heGltdW1EaWdpdHMgPSA5OworICAgICAgICAv
LyBUZW1wb3JhcnkgYnVmZmVyIGZvciB0aGUgZGlnaXRzLiBNYWtlcyBlYXNpZXIKKyAgICAgICAg
Ly8gdG8gcmVjb25zdHJ1Y3QgdGhlIGlucHV0IGNoYXJhY3RlcnMgd2hlbiBuZWVkZWQuCisgICAg
ICAgIGNoYXIgZGlnaXRzWzEwXTsKKworICAgICAgICBkbyB7CisgICAgICAgICAgICBkZWNpbWFs
VmFsdWUgPSBkZWNpbWFsVmFsdWUgKiAxMCArIChtX2N1cnJlbnQgLSAnMCcpOworICAgICAgICAg
ICAgZGlnaXRzW21heGltdW1EaWdpdHNdID0gbV9jdXJyZW50OworICAgICAgICAgICAgc2hpZnQo
KTsKKyAgICAgICAgICAgIC0tbWF4aW11bURpZ2l0czsKKyAgICAgICAgfSB3aGlsZSAoaXNBU0NJ
SURpZ2l0KG1fY3VycmVudCkgJiYgbWF4aW11bURpZ2l0cyA+PSAwKTsKKworICAgICAgICBpZiAo
bWF4aW11bURpZ2l0cyA+PSAwICYmIG1fY3VycmVudCAhPSAnLicgJiYgKG1fY3VycmVudCB8IDB4
MjApICE9ICdlJykgeworICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBkZWNpbWFsVmFsdWU7Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkg
PSA5OyBpID4gbWF4aW11bURpZ2l0czsgLS1pKQorICAgICAgICAgICAgcmVjb3JkOChkaWdpdHNb
aV0pOworICAgIH0KKworICAgIHdoaWxlIChpc0FTQ0lJRGlnaXQobV9jdXJyZW50KSkgeworICAg
ICAgICByZWNvcmQ4KG1fY3VycmVudCk7CisgICAgICAgIHNoaWZ0KCk7CisgICAgfQorCisgICAg
cmV0dXJuIGZhbHNlOworfQorCitBTFdBWVNfSU5MSU5FIHZvaWQgTGV4ZXI6OnBhcnNlTnVtYmVy
QWZ0ZXJEZWNpbWFsUG9pbnQoKQoreworICAgIHJlY29yZDgoJy4nKTsKKyAgICB3aGlsZSAoaXNB
U0NJSURpZ2l0KG1fY3VycmVudCkpIHsKKyAgICAgICAgcmVjb3JkOChtX2N1cnJlbnQpOworICAg
ICAgICBzaGlmdCgpOworICAgIH0KK30KKworQUxXQVlTX0lOTElORSBib29sIExleGVyOjpwYXJz
ZU51bWJlckFmdGVyRXhwb25lbnRJbmRpY2F0b3IoKQoreworICAgIHJlY29yZDgoJ2UnKTsKKyAg
ICBzaGlmdCgpOworICAgIGlmIChtX2N1cnJlbnQgPT0gJysnIHx8IG1fY3VycmVudCA9PSAnLScp
IHsKKyAgICAgICAgcmVjb3JkOChtX2N1cnJlbnQpOworICAgICAgICBzaGlmdCgpOworICAgIH0K
KworICAgIGlmICghaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGRvIHsKKyAgICAgICAgcmVjb3JkOChtX2N1cnJlbnQpOworICAgICAgICBzaGlm
dCgpOworICAgIH0gd2hpbGUgKGlzQVNDSUlEaWdpdChtX2N1cnJlbnQpKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogSlNUb2tlblR5cGUgTGV4ZXI6OmxleChKU1Rva2VuRGF0YSogbHZhbHAsIEpT
VG9rZW5JbmZvKiBsbG9jcCwgTGV4VHlwZSBsZXhUeXBlKQogewogICAgIEFTU0VSVCghbV9lcnJv
cik7CkBAIC03NTAsMTQgKzg5MCw2IEBAIHN0YXJ0OgogICAgICAgICB9CiAgICAgICAgIHRva2Vu
ID0gQklUT1I7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2hhcmFjdGVyRG90OgotICAgICAg
ICBzaGlmdCgpOwotICAgICAgICBpZiAoaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpIHsKLSAgICAg
ICAgICAgIHJlY29yZDgoJy4nKTsKLSAgICAgICAgICAgIGdvdG8gaW5OdW1iZXJBZnRlckRlY2lt
YWxQb2ludDsKLSAgICAgICAgfQotICAgICAgICB0b2tlbiA9IERPVDsKLSAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDaGFyYWN0ZXJPcGVuUGFyZW46CiAgICAgICAgIHRva2VuID0gT1BFTlBBUkVO
OwogICAgICAgICBzaGlmdCgpOwpAQCAtODA2LDEwICs5MzgsNTAgQEAgc3RhcnQ6CiAgICAgICAg
IHNoaWZ0KCk7CiAgICAgICAgIHRva2VuID0gQ0xPU0VCUkFDRTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDaGFyYWN0ZXJEb3Q6CisgICAgICAgIHNoaWZ0KCk7CisgICAgICAgIGlmICghaXNB
U0NJSURpZ2l0KG1fY3VycmVudCkpIHsKKyAgICAgICAgICAgIHRva2VuID0gRE9UOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZ290byBpbk51bWJlckFmdGVyRGVjaW1h
bFBvaW50OwogICAgIGNhc2UgQ2hhcmFjdGVyWmVybzoKLSAgICAgICAgZ290byBzdGFydE51bWJl
cldpdGhaZXJvRGlnaXQ7CisgICAgICAgIHNoaWZ0KCk7CisgICAgICAgIGlmICgobV9jdXJyZW50
IHwgMHgyMCkgPT0gJ3gnICYmIGlzQVNDSUlIZXhEaWdpdChwZWVrKDEpKSkgeworICAgICAgICAg
ICAgcGFyc2VIZXgobHZhbHAtPmRvdWJsZVZhbHVlKTsKKyAgICAgICAgICAgIHRva2VuID0gTlVN
QkVSOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVjb3JkOCgnMCcpOworICAgICAg
ICAgICAgaWYgKGlzQVNDSUlPY3RhbERpZ2l0KG1fY3VycmVudCkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAocGFyc2VPY3RhbChsdmFscC0+ZG91YmxlVmFsdWUpKQorICAgICAgICAgICAgICAgICAg
ICB0b2tlbiA9IE5VTUJFUjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBG
YWxsIHRocm91Z2ggaW50byBDaGFyYWN0ZXJOdW1iZXIKICAgICBjYXNlIENoYXJhY3Rlck51bWJl
cjoKLSAgICAgICAgZ290byBzdGFydE51bWJlcjsKKyAgICAgICAgaWYgKExJS0VMWSh0b2tlbiAh
PSBOVU1CRVIpKSB7CisgICAgICAgICAgICBpZiAoIXBhcnNlRGVjaW1hbChsdmFscC0+ZG91Ymxl
VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnLicpIHsKKyAgICAg
ICAgICAgICAgICAgICAgc2hpZnQoKTsKK2luTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQ6CisgICAg
ICAgICAgICAgICAgICAgIHBhcnNlTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQoKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKChtX2N1cnJlbnQgfCAweDIwKSA9PSAnZScp
CisgICAgICAgICAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXJBZnRlckV4cG9uZW50SW5kaWNh
dG9yKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybkVycm9yOworICAgICAg
ICAgICAgICAgIC8vIE51bGwtdGVybWluYXRlIHN0cmluZyBmb3Igc3RydG9kLgorICAgICAgICAg
ICAgICAgIG1fYnVmZmVyOC5hcHBlbmQoJ1wwJyk7CisgICAgICAgICAgICAgICAgbHZhbHAtPmRv
dWJsZVZhbHVlID0gV1RGOjpzdHJ0b2QobV9idWZmZXI4LmRhdGEoKSwgMCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICB0b2tlbiA9IE5VTUJFUjsKKyAgICAgICAgfQorCisgICAgICAgIC8v
IE5vIGlkZW50aWZpZXJzIGFsbG93ZWQgZGlyZWN0bHkgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsLCBl
LmcuICIzaW4iIGlzIGJhZC4KKyAgICAgICAgaWYgKFVOTElLRUxZKGlzSWRlbnRTdGFydChtX2N1
cnJlbnQpKSkKKyAgICAgICAgICAgIGdvdG8gcmV0dXJuRXJyb3I7CisgICAgICAgIG1fYnVmZmVy
OC5yZXNpemUoMCk7CisgICAgICAgIG1fZGVsaW1pdGVkID0gZmFsc2U7CisgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ2hhcmFjdGVyUXVvdGU6CiAgICAgICAgIGlmIChVTkxJS0VMWSghcGFyc2VT
dHJpbmcobHZhbHApKSkKICAgICAgICAgICAgIGdvdG8gcmV0dXJuRXJyb3I7CkBAIC04NzgsMTQw
ICsxMDUwLDYgQEAgaW5NdWx0aUxpbmVDb21tZW50OgogICAgIG1fYXRMaW5lU3RhcnQgPSBmYWxz
ZTsKICAgICBnb3RvIHN0YXJ0OwogCi1zdGFydE51bWJlcldpdGhaZXJvRGlnaXQ6Ci0gICAgc2hp
ZnQoKTsKLSAgICBpZiAoKG1fY3VycmVudCB8IDB4MjApID09ICd4JyAmJiBpc0FTQ0lJSGV4RGln
aXQocGVlaygxKSkpIHsKLSAgICAgICAgc2hpZnQoKTsKLSAgICAgICAgZ290byBpbkhleDsKLSAg
ICB9Ci0gICAgaWYgKG1fY3VycmVudCA9PSAnLicpIHsKLSAgICAgICAgcmVjb3JkOCgnMCcpOwot
ICAgICAgICByZWNvcmQ4KCcuJyk7Ci0gICAgICAgIHNoaWZ0KCk7Ci0gICAgICAgIGdvdG8gaW5O
dW1iZXJBZnRlckRlY2ltYWxQb2ludDsKLSAgICB9Ci0gICAgaWYgKChtX2N1cnJlbnQgfCAweDIw
KSA9PSAnZScpIHsKLSAgICAgICAgcmVjb3JkOCgnMCcpOwotICAgICAgICByZWNvcmQ4KCdlJyk7
Ci0gICAgICAgIHNoaWZ0KCk7Ci0gICAgICAgIGdvdG8gaW5FeHBvbmVudEluZGljYXRvcjsKLSAg
ICB9Ci0gICAgaWYgKGlzQVNDSUlPY3RhbERpZ2l0KG1fY3VycmVudCkpCi0gICAgICAgIGdvdG8g
aW5PY3RhbDsKLSAgICBpZiAoaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpCi0gICAgICAgIGdvdG8g
c3RhcnROdW1iZXI7Ci0gICAgbHZhbHAtPmRvdWJsZVZhbHVlID0gMDsKLSAgICBnb3RvIGRvbmVO
dW1lcmljOwotCi1pbk51bWJlckFmdGVyRGVjaW1hbFBvaW50OgotICAgIHdoaWxlIChpc0FTQ0lJ
RGlnaXQobV9jdXJyZW50KSkgewotICAgICAgICByZWNvcmQ4KG1fY3VycmVudCk7Ci0gICAgICAg
IHNoaWZ0KCk7Ci0gICAgfQotICAgIGlmICgobV9jdXJyZW50IHwgMHgyMCkgPT0gJ2UnKSB7Ci0g
ICAgICAgIHJlY29yZDgoJ2UnKTsKLSAgICAgICAgc2hpZnQoKTsKLSAgICAgICAgZ290byBpbkV4
cG9uZW50SW5kaWNhdG9yOwotICAgIH0KLSAgICBnb3RvIGRvbmVOdW1iZXI7Ci0KLWluRXhwb25l
bnRJbmRpY2F0b3I6Ci0gICAgaWYgKG1fY3VycmVudCA9PSAnKycgfHwgbV9jdXJyZW50ID09ICct
JykgewotICAgICAgICByZWNvcmQ4KG1fY3VycmVudCk7Ci0gICAgICAgIHNoaWZ0KCk7Ci0gICAg
fQotICAgIGlmICghaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpCi0gICAgICAgIGdvdG8gcmV0dXJu
RXJyb3I7Ci0gICAgZG8gewotICAgICAgICByZWNvcmQ4KG1fY3VycmVudCk7Ci0gICAgICAgIHNo
aWZ0KCk7Ci0gICAgfSB3aGlsZSAoaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpOwotICAgIGdvdG8g
ZG9uZU51bWJlcjsKLQotaW5PY3RhbDogewotICAgIGRvIHsKLSAgICAgICAgcmVjb3JkOChtX2N1
cnJlbnQpOwotICAgICAgICBzaGlmdCgpOwotICAgIH0gd2hpbGUgKGlzQVNDSUlPY3RhbERpZ2l0
KG1fY3VycmVudCkpOwotICAgIGlmIChpc0FTQ0lJRGlnaXQobV9jdXJyZW50KSkKLSAgICAgICAg
Z290byBzdGFydE51bWJlcjsKLQotICAgIGRvdWJsZSBkdmFsID0gMDsKLQotICAgIGNvbnN0IGNo
YXIqIGVuZCA9IG1fYnVmZmVyOC5lbmQoKTsKLSAgICBmb3IgKGNvbnN0IGNoYXIqIHAgPSBtX2J1
ZmZlcjguZGF0YSgpOyBwIDwgZW5kOyArK3ApIHsKLSAgICAgICAgZHZhbCAqPSA4OwotICAgICAg
ICBkdmFsICs9ICpwIC0gJzAnOwotICAgIH0KLSAgICBpZiAoZHZhbCA+PSBtYW50aXNzYU92ZXJm
bG93TG93ZXJCb3VuZCkKLSAgICAgICAgZHZhbCA9IHBhcnNlSW50T3ZlcmZsb3cobV9idWZmZXI4
LmRhdGEoKSwgZW5kIC0gbV9idWZmZXI4LmRhdGEoKSwgOCk7Ci0KLSAgICBtX2J1ZmZlcjgucmVz
aXplKDApOwotCi0gICAgbHZhbHAtPmRvdWJsZVZhbHVlID0gZHZhbDsKLSAgICBnb3RvIGRvbmVO
dW1lcmljOwotfQotCi1pbkhleDogewotICAgIGRvIHsKLSAgICAgICAgcmVjb3JkOChtX2N1cnJl
bnQpOwotICAgICAgICBzaGlmdCgpOwotICAgIH0gd2hpbGUgKGlzQVNDSUlIZXhEaWdpdChtX2N1
cnJlbnQpKTsKLQotICAgIGRvdWJsZSBkdmFsID0gMDsKLQotICAgIGNvbnN0IGNoYXIqIGVuZCA9
IG1fYnVmZmVyOC5lbmQoKTsKLSAgICBmb3IgKGNvbnN0IGNoYXIqIHAgPSBtX2J1ZmZlcjguZGF0
YSgpOyBwIDwgZW5kOyArK3ApIHsKLSAgICAgICAgZHZhbCAqPSAxNjsKLSAgICAgICAgZHZhbCAr
PSB0b0FTQ0lJSGV4VmFsdWUoKnApOwotICAgIH0KLSAgICBpZiAoZHZhbCA+PSBtYW50aXNzYU92
ZXJmbG93TG93ZXJCb3VuZCkKLSAgICAgICAgZHZhbCA9IHBhcnNlSW50T3ZlcmZsb3cobV9idWZm
ZXI4LmRhdGEoKSwgZW5kIC0gbV9idWZmZXI4LmRhdGEoKSwgMTYpOwotCi0gICAgbV9idWZmZXI4
LnJlc2l6ZSgwKTsKLQotICAgIGx2YWxwLT5kb3VibGVWYWx1ZSA9IGR2YWw7Ci0gICAgZ290byBk
b25lTnVtZXJpYzsKLX0KLQotc3RhcnROdW1iZXI6Ci0gICAgcmVjb3JkOChtX2N1cnJlbnQpOwot
ICAgIHNoaWZ0KCk7Ci0gICAgd2hpbGUgKGlzQVNDSUlEaWdpdChtX2N1cnJlbnQpKSB7Ci0gICAg
ICAgIHJlY29yZDgobV9jdXJyZW50KTsKLSAgICAgICAgc2hpZnQoKTsKLSAgICB9Ci0gICAgaWYg
KG1fY3VycmVudCA9PSAnLicpIHsKLSAgICAgICAgcmVjb3JkOCgnLicpOwotICAgICAgICBzaGlm
dCgpOwotICAgICAgICBnb3RvIGluTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQ7Ci0gICAgfQotICAg
IGlmICgobV9jdXJyZW50IHwgMHgyMCkgPT0gJ2UnKSB7Ci0gICAgICAgIHJlY29yZDgoJ2UnKTsK
LSAgICAgICAgc2hpZnQoKTsKLSAgICAgICAgZ290byBpbkV4cG9uZW50SW5kaWNhdG9yOwotICAg
IH0KLQotICAgIC8vIEZhbGwgdGhyb3VnaCBpbnRvIGRvbmVOdW1iZXIuCi0KLWRvbmVOdW1iZXI6
Ci0gICAgLy8gTnVsbC10ZXJtaW5hdGUgc3RyaW5nIGZvciBzdHJ0b2QuCi0gICAgbV9idWZmZXI4
LmFwcGVuZCgnXDAnKTsKLSAgICBsdmFscC0+ZG91YmxlVmFsdWUgPSBXVEY6OnN0cnRvZChtX2J1
ZmZlcjguZGF0YSgpLCAwKTsKLSAgICBtX2J1ZmZlcjgucmVzaXplKDApOwotCi0gICAgLy8gRmFs
bCB0aHJvdWdoIGludG8gZG9uZU51bWVyaWMuCi0KLWRvbmVOdW1lcmljOgotICAgIC8vIE5vIGlk
ZW50aWZpZXJzIGFsbG93ZWQgZGlyZWN0bHkgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsLCBlLmcuICIz
aW4iIGlzIGJhZC4KLSAgICBpZiAoVU5MSUtFTFkoaXNJZGVudFN0YXJ0KG1fY3VycmVudCkpKQot
ICAgICAgICBnb3RvIHJldHVybkVycm9yOwotCi0gICAgbV9hdExpbmVTdGFydCA9IGZhbHNlOwot
ICAgIG1fZGVsaW1pdGVkID0gZmFsc2U7Ci0gICAgdG9rZW4gPSBOVU1CRVI7Ci0gICAgZ290byBy
ZXR1cm5Ub2tlbjsKLQogZG9uZVNlbWljb2xvbjoKICAgICB0b2tlbiA9IFNFTUlDT0xPTjsKICAg
ICBtX2RlbGltaXRlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
TGV4ZXIuaCBiL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCmluZGV4IDNkOTdjYzEuLmRh
ODRhNmIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCkBAIC05Niw2ICs5NiwxMSBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBBTFdBWVNfSU5MSU5FIEpTVG9rZW5UeXBlIHBhcnNlSWRlbnRpZmll
cihKU1Rva2VuRGF0YSosIExleFR5cGUpOwogICAgICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGFy
c2VTdHJpbmcoSlNUb2tlbkRhdGEqIGx2YWxwKTsKKyAgICAgICAgQUxXQVlTX0lOTElORSB2b2lk
IHBhcnNlSGV4KGRvdWJsZSYgcmV0dXJuVmFsdWUpOworICAgICAgICBBTFdBWVNfSU5MSU5FIGJv
b2wgcGFyc2VPY3RhbChkb3VibGUmIHJldHVyblZhbHVlKTsKKyAgICAgICAgQUxXQVlTX0lOTElO
RSBib29sIHBhcnNlRGVjaW1hbChkb3VibGUmIHJldHVyblZhbHVlKTsKKyAgICAgICAgQUxXQVlT
X0lOTElORSB2b2lkIHBhcnNlTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQoKTsKKyAgICAgICAgQUxX
QVlTX0lOTElORSBib29sIHBhcnNlTnVtYmVyQWZ0ZXJFeHBvbmVudEluZGljYXRvcigpOwogCiAg
ICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW5pdGlhbFJlYWRCdWZmZXJDYXBhY2l0eSA9IDMy
OwogCi0tIAoxLjYuMC40Cgo=
</data>
<flag name="review"
          id="53460"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>