<?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>20346</bug_id>
          
          <creation_ts>2008-08-11 11:22:24 -0700</creation_ts>
          <short_desc>Speed up the JavaScript syntax highlighter by generating the finders only once</short_desc>
          <delta_ts>2008-08-11 11:48:51 -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 Inspector (Deprecated)</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>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>88226</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-08-11 11:22:24 -0700</bug_when>
    <thetext>The syntax highlighter can be speed up more by generating the finders only once when syntaxHighlightJavascript is called, not per line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88228</commentid>
    <comment_count>1</comment_count>
      <attachid>22730</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-08-11 11:29:14 -0700</bug_when>
    <thetext>Created attachment 22730
Proposed patch (ignoring whitespace changes)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88229</commentid>
    <comment_count>2</comment_count>
      <attachid>22731</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-08-11 11:29:52 -0700</bug_when>
    <thetext>Created attachment 22731
Proposed patch (full patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88230</commentid>
    <comment_count>3</comment_count>
      <attachid>22730</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-08-11 11:38:09 -0700</bug_when>
    <thetext>Comment on attachment 22730
Proposed patch (ignoring whitespace changes)

+        Removed, factoeed into syntaxHighlightJavascript as an inline function.

Typo: factoeed

-        var findSingleLineString = generateFinder(/^&quot;(?:[^&quot;\\]|\\.)*&quot;|^&apos;([^&apos;\\]|\\.)*&apos;/, 0, &quot;webkit-javascript-string&quot;);
+        var findSingleLineString = generateFinder(/^&quot;(?:[^&quot;\\]|\\.)*&quot;|^&apos;([^&apos;\\]|\\.)*&apos;/, 0, &quot;webkit-javascript-string&quot;); // &quot;

Why this change?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88231</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-08-11 11:47:04 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 22730 [edit])
&gt; -        var findSingleLineString =
&gt; generateFinder(/^&quot;(?:[^&quot;\\]|\\.)*&quot;|^&apos;([^&apos;\\]|\\.)*&apos;/, 0,
&gt; &quot;webkit-javascript-string&quot;);
&gt; +        var findSingleLineString =
&gt; generateFinder(/^&quot;(?:[^&quot;\\]|\\.)*&quot;|^&apos;([^&apos;\\]|\\.)*&apos;/, 0,
&gt; &quot;webkit-javascript-string&quot;); // &quot;
&gt; 
&gt; Why this change?

Needed to keep Xcode&apos;s syntax highlighting sane. I added some words to that comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88232</commentid>
    <comment_count>5</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-08-11 11:48:51 -0700</bug_when>
    <thetext>Landed in r35669.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22730</attachid>
            <date>2008-08-11 11:29:14 -0700</date>
            <delta_ts>2008-08-11 11:38:09 -0700</delta_ts>
            <desc>Proposed patch (ignoring whitespace changes)</desc>
            <filename>0001-Speed-up-the-the-JavaScript-syntax-highlight.patch</filename>
            <type>text/plain</type>
            <size>7101</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">RnJvbSAzNTM3ZDY5YTc2ZWNkZDEwYWUzMGRhMjZjY2I0ZTI4MjBhNjYxNzMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW1vdGh5IEhhdGNoZXIgPHRpbW90aHlAYXBwbGUuY29tPgpE
YXRlOiBNb24sIDExIEF1ZyAyMDA4IDExOjI4OjE3IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gICAg
ICAgICBTcGVlZCB1cCB0aGUgdGhlIEphdmFTY3JpcHQgc3ludGF4IGhpZ2hsaWdodGVyIGJ5IGdl
bmVyYXRpbmcKICAgICAgICAgdGhlIGZpbmRlcnMgb25seSBvbmNlIHBlciBzY3JpcHQgaW5zdGVh
ZCBvZiBwZXIgbGluZS4KCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzQ2CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAg
ICAqIHBhZ2UvaW5zcGVjdG9yL1NvdXJjZUZyYW1lLmpzOgogICAgICAgIChXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWUucHJvdG90eXBlLl9zeW50YXhIaWdobGlnaHRKYXZhc2NyaXB0TGluZSk6CiAg
ICAgICAgUmVtb3ZlZCwgZmFjdG9lZWQgaW50byBzeW50YXhIaWdobGlnaHRKYXZhc2NyaXB0IGFz
IGFuIGlubGluZSBmdW5jdGlvbi4KICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZS5zeW50YXhIaWdobGlnaHRKYXZhc2NyaXB0KToKICAgICAgICBQdWxsZWQgaW4gdGhl
IF9zeW50YXhIaWdobGlnaHRKYXZhc2NyaXB0TGluZSBzbyBpdCB3aWxsIGNyZWF0ZSBhIGNsb3N1
cmUuCiAgICAgICAgR2VuZXJhdGUgdGhlIGZpbmRlcnMgYmVmb3JlIGl0ZXJhdGluZyB0aGUgbGlu
ZXMuCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysr
KysrKysKIFdlYkNvcmUvcGFnZS9pbnNwZWN0b3IvU291cmNlRnJhbWUuanMgfCAgIDY4ICsrKysr
KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDUwIGluc2VydGlv
bnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZlMjA3NS4uMzRiOTY1YiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMSBAQAog
MjAwOC0wOC0xMSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKKyAgICAg
ICAgU3BlZWQgdXAgdGhlIHRoZSBKYXZhU2NyaXB0IHN5bnRheCBoaWdobGlnaHRlciBieSBnZW5l
cmF0aW5nCisgICAgICAgIHRoZSBmaW5kZXJzIG9ubHkgb25jZSBwZXIgc2NyaXB0IGluc3RlYWQg
b2YgcGVyIGxpbmUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwYWdlL2luc3BlY3Rvci9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX3N5bnRheEhpZ2hsaWdodEphdmFzY3JpcHRMaW5l
KToKKyAgICAgICAgUmVtb3ZlZCwgZmFjdG9lZWQgaW50byBzeW50YXhIaWdobGlnaHRKYXZhc2Ny
aXB0IGFzIGFuIGlubGluZSBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZS5wcm90b3R5cGUuc3ludGF4SGlnaGxpZ2h0SmF2YXNjcmlwdCk6CisgICAgICAgIFB1bGxl
ZCBpbiB0aGUgX3N5bnRheEhpZ2hsaWdodEphdmFzY3JpcHRMaW5lIHNvIGl0IHdpbGwgY3JlYXRl
IGEgY2xvc3VyZS4KKyAgICAgICAgR2VuZXJhdGUgdGhlIGZpbmRlcnMgYmVmb3JlIGl0ZXJhdGlu
ZyB0aGUgbGluZXMuCisKKzIwMDgtMDgtMTEgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBw
bGUuY29tPgorCiAgICAgICAgIEZpeGVzIGEgYnVnIHdoZXJlIGVycm9yIGJ1YmJsZXMgaW4gSmF2
YVNjcmlwdCByZXNvdXJjZXMgd291bGQKICAgICAgICAgYmUgY2xvYmJlcmVkIGJ5IHRoZSBzeW50
YXggaGlnaGxpZ2h0ZXIuCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9pbnNwZWN0b3IvU291
cmNlRnJhbWUuanMgYi9XZWJDb3JlL3BhZ2UvaW5zcGVjdG9yL1NvdXJjZUZyYW1lLmpzCmluZGV4
IGU4MWE0MGYuLjg4OGE4MGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9pbnNwZWN0b3IvU291
cmNlRnJhbWUuanMKKysrIGIvV2ViQ29yZS9wYWdlL2luc3BlY3Rvci9Tb3VyY2VGcmFtZS5qcwpA
QCAtNDY5LDIwICs0NjksMjEgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9
IHsKICAgICAgICAgZGVsZXRlIHRoaXMuX25lZWRzQnJlYWtwb2ludEltYWdlczsKICAgICB9LAog
Ci0gICAgX3N5bnRheEhpZ2hsaWdodEphdmFzY3JpcHRMaW5lOiBmdW5jdGlvbihsaW5lLCBwcmV2
TGluZSkKKyAgICBzeW50YXhIaWdobGlnaHRKYXZhc2NyaXB0OiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICB2YXIgcHJldmlvdXNNYXRjaExlbmd0aCA9IDA7Ci0KLSAgICAgICAgdmFyIG1lc3Nh
Z2VCdWJibGUgPSBsaW5lLmxhc3RDaGlsZDsKLSAgICAgICAgaWYgKG1lc3NhZ2VCdWJibGUgJiYg
bWVzc2FnZUJ1YmJsZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUgJiYgbWVzc2FnZUJ1
YmJsZS5oYXNTdHlsZUNsYXNzKCJ3ZWJraXQtaHRtbC1tZXNzYWdlLWJ1YmJsZSIpKQotICAgICAg
ICAgICAgbGluZS5yZW1vdmVDaGlsZChtZXNzYWdlQnViYmxlKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgbWVzc2FnZUJ1YmJsZSA9IG51bGw7Ci0KLSAgICAgICAgdmFyIGNvZGUgPSBsaW5l
LnRleHRDb250ZW50OworICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmVsZW1lbnQuY29udGVudERv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0YWJsZSIpWzBdOworICAgICAgICBpZiAoIXRh
YmxlKQorICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHdoaWxlIChsaW5lLmZpcnN0Q2hp
bGQpCi0gICAgICAgICAgICBsaW5lLnJlbW92ZUNoaWxkKGxpbmUuZmlyc3RDaGlsZCk7CisgICAg
ICAgIGZ1bmN0aW9uIGRlbGV0ZUNvbnRpbnVlRmxhZ3MoY2VsbCkKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKCFjZWxsKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGRl
bGV0ZSBjZWxsLl9jb21tZW50Q29udGludWVzOworICAgICAgICAgICAgZGVsZXRlIGNlbGwuX3Np
bmdsZVF1b3RlU3RyaW5nQ29udGludWVzOworICAgICAgICAgICAgZGVsZXRlIGNlbGwuX2RvdWJs
ZVF1b3RlU3RyaW5nQ29udGludWVzOworICAgICAgICAgICAgZGVsZXRlIGNlbGwuX3JlZ2V4cENv
bnRpbnVlczsKKyAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVNwYW4oY29udGVu
dCwgY2xhc3NOYW1lKQogICAgICAgICB7CkBAIC01MDUsNyArNTA2LDcgQEAgV2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgZmluZE51bWJlciA9IGdl
bmVyYXRlRmluZGVyKC9eKC0/KFxkK1wuP1xkKihbZUVdWystXVxkKyk/fDBbeFhdXGgrfEluZmlu
aXR5KXxOYU4pKD86XFd8JCkvLCAxLCAid2Via2l0LWphdmFzY3JpcHQtbnVtYmVyIik7CiAgICAg
ICAgIHZhciBmaW5kS2V5d29yZCA9IGdlbmVyYXRlRmluZGVyKC9eKG51bGx8dHJ1ZXxmYWxzZXxi
cmVha3xjYXNlfGNhdGNofGNvbnN0fGRlZmF1bHR8ZmluYWxseXxmb3J8aW5zdGFuY2VvZnxuZXd8
dmFyfGNvbnRpbnVlfGZ1bmN0aW9ufHJldHVybnx2b2lkfGRlbGV0ZXxpZnx0aGlzfGRvfHdoaWxl
fGVsc2V8aW58c3dpdGNofHRocm93fHRyeXx0eXBlb2Z8d2l0aHxkZWJ1Z2dlcnxjbGFzc3xlbnVt
fGV4cG9ydHxleHRlbmRzfGltcG9ydHxzdXBlcnxnZXR8c2V0KSg/OlxXfCQpLywgMSwgIndlYmtp
dC1qYXZhc2NyaXB0LWtleXdvcmQiKTsKLSAgICAgICAgdmFyIGZpbmRTaW5nbGVMaW5lU3RyaW5n
ID0gZ2VuZXJhdGVGaW5kZXIoL14iKD86W14iXFxdfFxcLikqInxeJyhbXidcXF18XFwuKSonLywg
MCwgIndlYmtpdC1qYXZhc2NyaXB0LXN0cmluZyIpOworICAgICAgICB2YXIgZmluZFNpbmdsZUxp
bmVTdHJpbmcgPSBnZW5lcmF0ZUZpbmRlcigvXiIoPzpbXiJcXF18XFwuKSoifF4nKFteJ1xcXXxc
XC4pKicvLCAwLCAid2Via2l0LWphdmFzY3JpcHQtc3RyaW5nIik7IC8vICIKICAgICAgICAgdmFy
IGZpbmRNdWx0aWxpbmVDb21tZW50U3RhcnQgPSBnZW5lcmF0ZUZpbmRlcigvXlwvXCouKiQvLCAw
LCAid2Via2l0LWphdmFzY3JpcHQtY29tbWVudCIpOwogICAgICAgICB2YXIgZmluZE11bHRpbGlu
ZUNvbW1lbnRFbmQgPSBnZW5lcmF0ZUZpbmRlcigvXi4qP1wqXC8vLCAwLCAid2Via2l0LWphdmFz
Y3JpcHQtY29tbWVudCIpOwogICAgICAgICB2YXIgZmluZE11bHRpbGluZVNpbmdsZVF1b3RlU3Ry
aW5nU3RhcnQgPSBnZW5lcmF0ZUZpbmRlcigvXicoPzpbXidcXF18XFwuKSpcXCQvLCAwLCAid2Vi
a2l0LWphdmFzY3JpcHQtc3RyaW5nIik7CkBAIC01MzUsNiArNTM2LDE5IEBAIFdlYkluc3BlY3Rv
ci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm4gbm9kZTsKICAg
ICAgICAgfQogCisgICAgICAgIGZ1bmN0aW9uIHN5bnRheEhpZ2hsaWdodEphdmFzY3JpcHRMaW5l
KGxpbmUsIHByZXZMaW5lKQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgbWVzc2FnZUJ1YmJs
ZSA9IGxpbmUubGFzdENoaWxkOworICAgICAgICAgICAgaWYgKG1lc3NhZ2VCdWJibGUgJiYgbWVz
c2FnZUJ1YmJsZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUgJiYgbWVzc2FnZUJ1YmJs
ZS5oYXNTdHlsZUNsYXNzKCJ3ZWJraXQtaHRtbC1tZXNzYWdlLWJ1YmJsZSIpKQorICAgICAgICAg
ICAgICAgIGxpbmUucmVtb3ZlQ2hpbGQobWVzc2FnZUJ1YmJsZSk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgbWVzc2FnZUJ1YmJsZSA9IG51bGw7CisKKyAgICAgICAgICAgIHZh
ciBjb2RlID0gbGluZS50ZXh0Q29udGVudDsKKworICAgICAgICAgICAgd2hpbGUgKGxpbmUuZmly
c3RDaGlsZCkKKyAgICAgICAgICAgICAgICBsaW5lLnJlbW92ZUNoaWxkKGxpbmUuZmlyc3RDaGls
ZCk7CisKICAgICAgICAgdmFyIHRva2VuOwogICAgICAgICB2YXIgdG1wID0gMDsKICAgICAgICAg
dmFyIGkgPSAwOwpAQCAtNTkwLDYgKzYwNCw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CisKICAgICAgICAgICAgIGlmICh0b2tlbikgewogICAgICAgICAgICAgICAg
IGlmICh0bXAgIT09IGkpCiAgICAgICAgICAgICAgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoY29kZS5zdWJzdHJpbmcodG1wLCBpKSkpOwpAQCAtNjA0LDI5
ICs2MTksMTMgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKIAogICAg
ICAgICBpZiAobWVzc2FnZUJ1YmJsZSkKICAgICAgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQobWVz
c2FnZUJ1YmJsZSk7Ci0gICAgfSwKLQotICAgIHN5bnRheEhpZ2hsaWdodEphdmFzY3JpcHQ6IGZ1
bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciB0YWJsZSA9IHRoaXMuZWxlbWVudC5jb250ZW50
RG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRhYmxlIilbMF07Ci0gICAgICAgIGlmICgh
dGFibGUpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICB2YXIgaSA9
IDA7CiAgICAgICAgIHZhciByb3dzID0gdGFibGUucm93czsKICAgICAgICAgdmFyIHJvd3NMZW5n
dGggPSByb3dzLmxlbmd0aDsKICAgICAgICAgdmFyIHByZXZpb3VzQ2VsbCA9IG51bGw7Ci0gICAg
ICAgIHZhciBwcm9jZXNzQ2h1bmtJbnRlcnZhbDsKLQotICAgICAgICBmdW5jdGlvbiBkZWxldGVD
b250aW51ZUZsYWdzKGNlbGwpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghY2VsbCkKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBkZWxldGUgY2VsbC5fY29tbWVudENv
bnRpbnVlczsKLSAgICAgICAgICAgIGRlbGV0ZSBjZWxsLl9zaW5nbGVRdW90ZVN0cmluZ0NvbnRp
bnVlczsKLSAgICAgICAgICAgIGRlbGV0ZSBjZWxsLl9kb3VibGVRdW90ZVN0cmluZ0NvbnRpbnVl
czsKLSAgICAgICAgICAgIGRlbGV0ZSBjZWxsLl9yZWdleHBDb250aW51ZXM7Ci0gICAgICAgIH0K
KyAgICAgICAgdmFyIHByZXZpb3VzTWF0Y2hMZW5ndGggPSAwOwogCiAgICAgICAgIC8vIFNwbGl0
IHVwIHRoZSB3b3JrIGludG8gY2h1bmtzIHNvIHdlIGRvbid0IGJsb2NrIHRoZQogICAgICAgICAv
LyBVSSB0aHJlYWQgd2hpbGUgcHJvY2Vzc2luZy4KQEAgLTY0MCw3ICs2MzksNyBAQCBXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHZhciBjZWxs
ID0gcm93LmNlbGxzWzFdOwogICAgICAgICAgICAgICAgIGlmICghY2VsbCkKICAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgdGhpcy5fc3ludGF4SGlnaGxpZ2h0
SmF2YXNjcmlwdExpbmUoY2VsbCwgcHJldmlvdXNDZWxsKTsKKyAgICAgICAgICAgICAgICBzeW50
YXhIaWdobGlnaHRKYXZhc2NyaXB0TGluZShjZWxsLCBwcmV2aW91c0NlbGwpOwogICAgICAgICAg
ICAgICAgIGlmIChpIDwgKGVuZCAtIDEpKQogICAgICAgICAgICAgICAgICAgICBkZWxldGVDb250
aW51ZUZsYWdzKHByZXZpb3VzQ2VsbCk7CiAgICAgICAgICAgICAgICAgcHJldmlvdXNDZWxsID0g
Y2VsbDsKQEAgLTY1Miw3ICs2NTEsOCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90
eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgcHJvY2Vzc0NodW5r
LmNhbGwodGhpcyk7Ci0gICAgICAgIHByb2Nlc3NDaHVua0ludGVydmFsID0gc2V0SW50ZXJ2YWwo
cHJvY2Vzc0NodW5rLmJpbmQodGhpcyksIDI1KTsKKyAgICAgICAgcHJvY2Vzc0NodW5rKCk7CisK
KyAgICAgICAgdmFyIHByb2Nlc3NDaHVua0ludGVydmFsID0gc2V0SW50ZXJ2YWwocHJvY2Vzc0No
dW5rLCAyNSk7CiAgICAgfQogfQotLSAKMS41LjQuNAoK
</data>
<flag name="review"
          id="10074"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22731</attachid>
            <date>2008-08-11 11:29:52 -0700</date>
            <delta_ts>2008-08-11 11:29:52 -0700</delta_ts>
            <desc>Proposed patch (full patch)</desc>
            <filename>0001-Speed-up-the-the-JavaScript-syntax-highlight.patch</filename>
            <type>text/plain</type>
            <size>13033</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">RnJvbSAzNTM3ZDY5YTc2ZWNkZDEwYWUzMGRhMjZjY2I0ZTI4MjBhNjYxNzMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW1vdGh5IEhhdGNoZXIgPHRpbW90aHlAYXBwbGUuY29tPgpE
YXRlOiBNb24sIDExIEF1ZyAyMDA4IDExOjI4OjE3IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gICAg
ICAgICBTcGVlZCB1cCB0aGUgdGhlIEphdmFTY3JpcHQgc3ludGF4IGhpZ2hsaWdodGVyIGJ5IGdl
bmVyYXRpbmcKICAgICAgICAgdGhlIGZpbmRlcnMgb25seSBvbmNlIHBlciBzY3JpcHQgaW5zdGVh
ZCBvZiBwZXIgbGluZS4KCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzQ2CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAg
ICAqIHBhZ2UvaW5zcGVjdG9yL1NvdXJjZUZyYW1lLmpzOgogICAgICAgIChXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWUucHJvdG90eXBlLl9zeW50YXhIaWdobGlnaHRKYXZhc2NyaXB0TGluZSk6CiAg
ICAgICAgUmVtb3ZlZCwgZmFjdG9lZWQgaW50byBzeW50YXhIaWdobGlnaHRKYXZhc2NyaXB0IGFz
IGFuIGlubGluZSBmdW5jdGlvbi4KICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZS5zeW50YXhIaWdobGlnaHRKYXZhc2NyaXB0KToKICAgICAgICBQdWxsZWQgaW4gdGhl
IF9zeW50YXhIaWdobGlnaHRKYXZhc2NyaXB0TGluZSBzbyBpdCB3aWxsIGNyZWF0ZSBhIGNsb3N1
cmUuCiAgICAgICAgR2VuZXJhdGUgdGhlIGZpbmRlcnMgYmVmb3JlIGl0ZXJhdGluZyB0aGUgbGlu
ZXMuCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysr
CiBXZWJDb3JlL3BhZ2UvaW5zcGVjdG9yL1NvdXJjZUZyYW1lLmpzIHwgIDE4OCArKysrKysrKysr
KysrKysrLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMTAgaW5zZXJ0aW9ucygr
KSwgOTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBkNmUyMDc1Li4zNGI5NjViIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIxIEBACiAyMDA4
LTA4LTExICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAorICAgICAgICBT
cGVlZCB1cCB0aGUgdGhlIEphdmFTY3JpcHQgc3ludGF4IGhpZ2hsaWdodGVyIGJ5IGdlbmVyYXRp
bmcKKyAgICAgICAgdGhlIGZpbmRlcnMgb25seSBvbmNlIHBlciBzY3JpcHQgaW5zdGVhZCBvZiBw
ZXIgbGluZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHBhZ2UvaW5zcGVjdG9yL1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fc3ludGF4SGlnaGxpZ2h0SmF2YXNjcmlwdExpbmUpOgor
ICAgICAgICBSZW1vdmVkLCBmYWN0b2VlZCBpbnRvIHN5bnRheEhpZ2hsaWdodEphdmFzY3JpcHQg
YXMgYW4gaW5saW5lIGZ1bmN0aW9uLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1l
LnByb3RvdHlwZS5zeW50YXhIaWdobGlnaHRKYXZhc2NyaXB0KToKKyAgICAgICAgUHVsbGVkIGlu
IHRoZSBfc3ludGF4SGlnaGxpZ2h0SmF2YXNjcmlwdExpbmUgc28gaXQgd2lsbCBjcmVhdGUgYSBj
bG9zdXJlLgorICAgICAgICBHZW5lcmF0ZSB0aGUgZmluZGVycyBiZWZvcmUgaXRlcmF0aW5nIHRo
ZSBsaW5lcy4KKworMjAwOC0wOC0xMSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5j
b20+CisKICAgICAgICAgRml4ZXMgYSBidWcgd2hlcmUgZXJyb3IgYnViYmxlcyBpbiBKYXZhU2Ny
aXB0IHJlc291cmNlcyB3b3VsZAogICAgICAgICBiZSBjbG9iYmVyZWQgYnkgdGhlIHN5bnRheCBo
aWdobGlnaHRlci4KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL2luc3BlY3Rvci9Tb3VyY2VG
cmFtZS5qcyBiL1dlYkNvcmUvcGFnZS9pbnNwZWN0b3IvU291cmNlRnJhbWUuanMKaW5kZXggZTgx
YTQwZi4uODg4YTgwYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2luc3BlY3Rvci9Tb3VyY2VG
cmFtZS5qcworKysgYi9XZWJDb3JlL3BhZ2UvaW5zcGVjdG9yL1NvdXJjZUZyYW1lLmpzCkBAIC00
NjksMjAgKzQ2OSwyMSBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewog
ICAgICAgICBkZWxldGUgdGhpcy5fbmVlZHNCcmVha3BvaW50SW1hZ2VzOwogICAgIH0sCiAKLSAg
ICBfc3ludGF4SGlnaGxpZ2h0SmF2YXNjcmlwdExpbmU6IGZ1bmN0aW9uKGxpbmUsIHByZXZMaW5l
KQorICAgIHN5bnRheEhpZ2hsaWdodEphdmFzY3JpcHQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIHZhciBwcmV2aW91c01hdGNoTGVuZ3RoID0gMDsKLQotICAgICAgICB2YXIgbWVzc2FnZUJ1
YmJsZSA9IGxpbmUubGFzdENoaWxkOwotICAgICAgICBpZiAobWVzc2FnZUJ1YmJsZSAmJiBtZXNz
YWdlQnViYmxlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiBtZXNzYWdlQnViYmxl
Lmhhc1N0eWxlQ2xhc3MoIndlYmtpdC1odG1sLW1lc3NhZ2UtYnViYmxlIikpCi0gICAgICAgICAg
ICBsaW5lLnJlbW92ZUNoaWxkKG1lc3NhZ2VCdWJibGUpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBtZXNzYWdlQnViYmxlID0gbnVsbDsKLQotICAgICAgICB2YXIgY29kZSA9IGxpbmUudGV4
dENvbnRlbnQ7CisgICAgICAgIHZhciB0YWJsZSA9IHRoaXMuZWxlbWVudC5jb250ZW50RG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRhYmxlIilbMF07CisgICAgICAgIGlmICghdGFibGUp
CisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgd2hpbGUgKGxpbmUuZmlyc3RDaGlsZCkK
LSAgICAgICAgICAgIGxpbmUucmVtb3ZlQ2hpbGQobGluZS5maXJzdENoaWxkKTsKKyAgICAgICAg
ZnVuY3Rpb24gZGVsZXRlQ29udGludWVGbGFncyhjZWxsKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIWNlbGwpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgZGVsZXRl
IGNlbGwuX2NvbW1lbnRDb250aW51ZXM7CisgICAgICAgICAgICBkZWxldGUgY2VsbC5fc2luZ2xl
UXVvdGVTdHJpbmdDb250aW51ZXM7CisgICAgICAgICAgICBkZWxldGUgY2VsbC5fZG91YmxlUXVv
dGVTdHJpbmdDb250aW51ZXM7CisgICAgICAgICAgICBkZWxldGUgY2VsbC5fcmVnZXhwQ29udGlu
dWVzOworICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gY3JlYXRlU3Bhbihjb250ZW50LCBj
bGFzc05hbWUpCiAgICAgICAgIHsKQEAgLTUwNSw3ICs1MDYsNyBAQCBXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWUucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBmaW5kTnVtYmVyID0gZ2VuZXJh
dGVGaW5kZXIoL14oLT8oXGQrXC4/XGQqKFtlRV1bKy1dXGQrKT98MFt4WF1caCt8SW5maW5pdHkp
fE5hTikoPzpcV3wkKS8sIDEsICJ3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIiKTsKICAgICAgICAg
dmFyIGZpbmRLZXl3b3JkID0gZ2VuZXJhdGVGaW5kZXIoL14obnVsbHx0cnVlfGZhbHNlfGJyZWFr
fGNhc2V8Y2F0Y2h8Y29uc3R8ZGVmYXVsdHxmaW5hbGx5fGZvcnxpbnN0YW5jZW9mfG5ld3x2YXJ8
Y29udGludWV8ZnVuY3Rpb258cmV0dXJufHZvaWR8ZGVsZXRlfGlmfHRoaXN8ZG98d2hpbGV8ZWxz
ZXxpbnxzd2l0Y2h8dGhyb3d8dHJ5fHR5cGVvZnx3aXRofGRlYnVnZ2VyfGNsYXNzfGVudW18ZXhw
b3J0fGV4dGVuZHN8aW1wb3J0fHN1cGVyfGdldHxzZXQpKD86XFd8JCkvLCAxLCAid2Via2l0LWph
dmFzY3JpcHQta2V5d29yZCIpOwotICAgICAgICB2YXIgZmluZFNpbmdsZUxpbmVTdHJpbmcgPSBn
ZW5lcmF0ZUZpbmRlcigvXiIoPzpbXiJcXF18XFwuKSoifF4nKFteJ1xcXXxcXC4pKicvLCAwLCAi
d2Via2l0LWphdmFzY3JpcHQtc3RyaW5nIik7CisgICAgICAgIHZhciBmaW5kU2luZ2xlTGluZVN0
cmluZyA9IGdlbmVyYXRlRmluZGVyKC9eIig/OlteIlxcXXxcXC4pKiJ8XicoW14nXFxdfFxcLikq
Jy8sIDAsICJ3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmciKTsgLy8gIgogICAgICAgICB2YXIgZmlu
ZE11bHRpbGluZUNvbW1lbnRTdGFydCA9IGdlbmVyYXRlRmluZGVyKC9eXC9cKi4qJC8sIDAsICJ3
ZWJraXQtamF2YXNjcmlwdC1jb21tZW50Iik7CiAgICAgICAgIHZhciBmaW5kTXVsdGlsaW5lQ29t
bWVudEVuZCA9IGdlbmVyYXRlRmluZGVyKC9eLio/XCpcLy8sIDAsICJ3ZWJraXQtamF2YXNjcmlw
dC1jb21tZW50Iik7CiAgICAgICAgIHZhciBmaW5kTXVsdGlsaW5lU2luZ2xlUXVvdGVTdHJpbmdT
dGFydCA9IGdlbmVyYXRlRmluZGVyKC9eJyg/OlteJ1xcXXxcXC4pKlxcJC8sIDAsICJ3ZWJraXQt
amF2YXNjcmlwdC1zdHJpbmciKTsKQEAgLTUzNSw5OCArNTM2LDk2IEBAIFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAg
ICAgfQogCi0gICAgICAgIHZhciB0b2tlbjsKLSAgICAgICAgdmFyIHRtcCA9IDA7Ci0gICAgICAg
IHZhciBpID0gMDsKLQotICAgICAgICBpZiAocHJldkxpbmUpIHsKLSAgICAgICAgICAgIGlmIChw
cmV2TGluZS5fY29tbWVudENvbnRpbnVlcykgewotICAgICAgICAgICAgICAgIGlmICghKHRva2Vu
ID0gZmluZE11bHRpbGluZUNvbW1lbnRFbmQoY29kZSkpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHRva2VuID0gY3JlYXRlU3Bhbihjb2RlLCAid2Via2l0LWphdmFzY3JpcHQtY29tbWVudCIpOwot
ICAgICAgICAgICAgICAgICAgICBsaW5lLl9jb21tZW50Q29udGludWVzID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHByZXZMaW5lLl9zaW5nbGVRdW90
ZVN0cmluZ0NvbnRpbnVlcykgewotICAgICAgICAgICAgICAgIGlmICghKHRva2VuID0gZmluZE11
bHRpbGluZVNpbmdsZVF1b3RlU3RyaW5nRW5kKGNvZGUpKSkgewotICAgICAgICAgICAgICAgICAg
ICB0b2tlbiA9IGNyZWF0ZVNwYW4oY29kZSwgIndlYmtpdC1qYXZhc2NyaXB0LXN0cmluZyIpOwot
ICAgICAgICAgICAgICAgICAgICBsaW5lLl9zaW5nbGVRdW90ZVN0cmluZ0NvbnRpbnVlcyA9IHRy
dWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChwcmV2TGluZS5f
ZG91YmxlUXVvdGVTdHJpbmdDb250aW51ZXMpIHsKLSAgICAgICAgICAgICAgICBpZiAoISh0b2tl
biA9IGZpbmRNdWx0aWxpbmVEb3VibGVRdW90ZVN0cmluZ0VuZChjb2RlKSkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgdG9rZW4gPSBjcmVhdGVTcGFuKGNvZGUsICJ3ZWJraXQtamF2YXNjcmlwdC1z
dHJpbmciKTsKLSAgICAgICAgICAgICAgICAgICAgbGluZS5fZG91YmxlUXVvdGVTdHJpbmdDb250
aW51ZXMgPSB0cnVlOworICAgICAgICBmdW5jdGlvbiBzeW50YXhIaWdobGlnaHRKYXZhc2NyaXB0
TGluZShsaW5lLCBwcmV2TGluZSkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIG1lc3NhZ2VC
dWJibGUgPSBsaW5lLmxhc3RDaGlsZDsKKyAgICAgICAgICAgIGlmIChtZXNzYWdlQnViYmxlICYm
IG1lc3NhZ2VCdWJibGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFICYmIG1lc3NhZ2VC
dWJibGUuaGFzU3R5bGVDbGFzcygid2Via2l0LWh0bWwtbWVzc2FnZS1idWJibGUiKSkKKyAgICAg
ICAgICAgICAgICBsaW5lLnJlbW92ZUNoaWxkKG1lc3NhZ2VCdWJibGUpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIG1lc3NhZ2VCdWJibGUgPSBudWxsOworCisgICAgICAgICAg
ICB2YXIgY29kZSA9IGxpbmUudGV4dENvbnRlbnQ7CisKKyAgICAgICAgICAgIHdoaWxlIChsaW5l
LmZpcnN0Q2hpbGQpCisgICAgICAgICAgICAgICAgbGluZS5yZW1vdmVDaGlsZChsaW5lLmZpcnN0
Q2hpbGQpOworCisgICAgICAgICAgICB2YXIgdG9rZW47CisgICAgICAgICAgICB2YXIgdG1wID0g
MDsKKyAgICAgICAgICAgIHZhciBpID0gMDsKKworICAgICAgICAgICAgaWYgKHByZXZMaW5lKSB7
CisgICAgICAgICAgICAgICAgaWYgKHByZXZMaW5lLl9jb21tZW50Q29udGludWVzKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghKHRva2VuID0gZmluZE11bHRpbGluZUNvbW1lbnRFbmQoY29k
ZSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IGNyZWF0ZVNwYW4oY29kZSwg
IndlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxp
bmUuX2NvbW1lbnRDb250aW51ZXMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChwcmV2TGluZS5fc2luZ2xlUXVvdGVTdHJpbmdDb250aW51
ZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCEodG9rZW4gPSBmaW5kTXVsdGlsaW5lU2lu
Z2xlUXVvdGVTdHJpbmdFbmQoY29kZSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0b2tl
biA9IGNyZWF0ZVNwYW4oY29kZSwgIndlYmtpdC1qYXZhc2NyaXB0LXN0cmluZyIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgbGluZS5fc2luZ2xlUXVvdGVTdHJpbmdDb250aW51ZXMgPSB0cnVl
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmV2
TGluZS5fZG91YmxlUXVvdGVTdHJpbmdDb250aW51ZXMpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKCEodG9rZW4gPSBmaW5kTXVsdGlsaW5lRG91YmxlUXVvdGVTdHJpbmdFbmQoY29kZSkpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IGNyZWF0ZVNwYW4oY29kZSwgIndlYmtp
dC1qYXZhc2NyaXB0LXN0cmluZyIpOworICAgICAgICAgICAgICAgICAgICAgICAgbGluZS5fZG91
YmxlUXVvdGVTdHJpbmdDb250aW51ZXMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmV2TGluZS5fcmVnZXhwQ29udGludWVzKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghKHRva2VuID0gZmluZE11bHRpbGluZVJlZ0V4cEVuZChj
b2RlKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuID0gY3JlYXRlU3Bhbihjb2Rl
LCAid2Via2l0LWphdmFzY3JpcHQtcmVnZXhwIik7CisgICAgICAgICAgICAgICAgICAgICAgICBs
aW5lLl9yZWdleHBDb250aW51ZXMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChwcmV2TGluZS5fcmVnZXhwQ29u
dGludWVzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCEodG9rZW4gPSBmaW5kTXVsdGlsaW5lUmVn
RXhwRW5kKGNvZGUpKSkgewotICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IGNyZWF0ZVNwYW4o
Y29kZSwgIndlYmtpdC1qYXZhc2NyaXB0LXJlZ2V4cCIpOwotICAgICAgICAgICAgICAgICAgICBs
aW5lLl9yZWdleHBDb250aW51ZXMgPSB0cnVlOworICAgICAgICAgICAgICAgIGlmICh0b2tlbikg
eworICAgICAgICAgICAgICAgICAgICBpICs9IHByZXZpb3VzTWF0Y2hMZW5ndGggPyBwcmV2aW91
c01hdGNoTGVuZ3RoIDogY29kZS5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IGk7
CisgICAgICAgICAgICAgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQodG9rZW4pOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh0b2tlbikgewotICAgICAg
ICAgICAgICAgIGkgKz0gcHJldmlvdXNNYXRjaExlbmd0aCA/IHByZXZpb3VzTWF0Y2hMZW5ndGgg
OiBjb2RlLmxlbmd0aDsKLSAgICAgICAgICAgICAgICB0bXAgPSBpOwotICAgICAgICAgICAgICAg
IGxpbmUuYXBwZW5kQ2hpbGQodG9rZW4pOwotICAgICAgICAgICAgfQotICAgICAgICB9CiAKLSAg
ICAgICAgZm9yICggOyBpIDwgY29kZS5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGNv
ZGVGcmFnbWVudCA9IGNvZGUuc3Vic3RyKGkpOwotICAgICAgICAgICAgdmFyIHByZXZDaGFyID0g
Y29kZVtpIC0gMV07Ci0gICAgICAgICAgICB0b2tlbiA9IGZpbmRTaW5nbGVMaW5lQ29tbWVudChj
b2RlRnJhZ21lbnQpOwotICAgICAgICAgICAgaWYgKCF0b2tlbikgewotICAgICAgICAgICAgICAg
IGlmICgodG9rZW4gPSBmaW5kTXVsdGlsaW5lQ29tbWVudFN0YXJ0KGNvZGVGcmFnbWVudCkpKQot
ICAgICAgICAgICAgICAgICAgICBsaW5lLl9jb21tZW50Q29udGludWVzID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICBlbHNlIGlmICghcHJldkNoYXIgfHwgL15cVy8udGVzdChwcmV2Q2hhcikpIHsK
LSAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSBmaW5kTnVtYmVyKGNvZGVGcmFnbWVudCwgY29k
ZVtpIC0gMV0pIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZEtleXdvcmQoY29k
ZUZyYWdtZW50LCBjb2RlW2kgLSAxXSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aW5kU2luZ2xlTGluZVN0cmluZyhjb2RlRnJhZ21lbnQpIHx8Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmluZFNpbmdsZUxpbmVSZWdFeHAoY29kZUZyYWdtZW50KTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKCF0b2tlbikgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRva2Vu
ID0gZmluZE11bHRpbGluZVNpbmdsZVF1b3RlU3RyaW5nU3RhcnQoY29kZUZyYWdtZW50KSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLl9zaW5nbGVRdW90ZVN0cmluZ0NvbnRpbnVl
cyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbiA9IGZpbmRN
dWx0aWxpbmVEb3VibGVRdW90ZVN0cmluZ1N0YXJ0KGNvZGVGcmFnbWVudCkpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGluZS5fZG91YmxlUXVvdGVTdHJpbmdDb250aW51ZXMgPSB0cnVl
OwotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodG9rZW4gPSBmaW5kTXVsdGlsaW5l
UmVnRXhwU3RhcnQoY29kZUZyYWdtZW50KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
aW5lLl9yZWdleHBDb250aW51ZXMgPSB0cnVlOworICAgICAgICAgICAgZm9yICggOyBpIDwgY29k
ZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHZhciBjb2RlRnJhZ21lbnQgPSBjb2Rl
LnN1YnN0cihpKTsKKyAgICAgICAgICAgICAgICB2YXIgcHJldkNoYXIgPSBjb2RlW2kgLSAxXTsK
KyAgICAgICAgICAgICAgICB0b2tlbiA9IGZpbmRTaW5nbGVMaW5lQ29tbWVudChjb2RlRnJhZ21l
bnQpOworICAgICAgICAgICAgICAgIGlmICghdG9rZW4pIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKCh0b2tlbiA9IGZpbmRNdWx0aWxpbmVDb21tZW50U3RhcnQoY29kZUZyYWdtZW50KSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICBsaW5lLl9jb21tZW50Q29udGludWVzID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIXByZXZDaGFyIHx8IC9eXFcvLnRlc3QocHJldkNo
YXIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IGZpbmROdW1iZXIoY29kZUZy
YWdtZW50LCBjb2RlW2kgLSAxXSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmluZEtleXdvcmQoY29kZUZyYWdtZW50LCBjb2RlW2kgLSAxXSkgfHwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZmluZFNpbmdsZUxpbmVTdHJpbmcoY29kZUZyYWdtZW50KSB8fAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kU2luZ2xlTGluZVJlZ0V4cChjb2Rl
RnJhZ21lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0b2tlbikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbiA9IGZpbmRNdWx0aWxpbmVTaW5nbGVRdW90
ZVN0cmluZ1N0YXJ0KGNvZGVGcmFnbWVudCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpbmUuX3NpbmdsZVF1b3RlU3RyaW5nQ29udGludWVzID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbiA9IGZpbmRNdWx0aWxpbmVEb3VibGVRdW90
ZVN0cmluZ1N0YXJ0KGNvZGVGcmFnbWVudCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpbmUuX2RvdWJsZVF1b3RlU3RyaW5nQ29udGludWVzID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbiA9IGZpbmRNdWx0aWxpbmVSZWdFeHBTdGFy
dChjb2RlRnJhZ21lbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLl9y
ZWdleHBDb250aW51ZXMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYg
KHRva2VuKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgIT09IGkpCisgICAgICAgICAg
ICAgICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNv
ZGUuc3Vic3RyaW5nKHRtcCwgaSkpKTsKKyAgICAgICAgICAgICAgICAgICAgbGluZS5hcHBlbmRD
aGlsZCh0b2tlbik7CisgICAgICAgICAgICAgICAgICAgIGkgKz0gcHJldmlvdXNNYXRjaExlbmd0
aCAtIDE7CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IGkgKyAxOworICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh0b2tlbikgewotICAgICAgICAgICAg
ICAgIGlmICh0bXAgIT09IGkpCi0gICAgICAgICAgICAgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY29kZS5zdWJzdHJpbmcodG1wLCBpKSkpOwotICAgICAg
ICAgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQodG9rZW4pOwotICAgICAgICAgICAgICAgIGkgKz0g
cHJldmlvdXNNYXRjaExlbmd0aCAtIDE7Ci0gICAgICAgICAgICAgICAgdG1wID0gaSArIDE7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KIAotICAgICAgICBpZiAodG1wIDwgY29kZS5sZW5ndGgp
Ci0gICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNv
ZGUuc3Vic3RyaW5nKHRtcCwgaSkpKTsKKyAgICAgICAgICAgIGlmICh0bXAgPCBjb2RlLmxlbmd0
aCkKKyAgICAgICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKGNvZGUuc3Vic3RyaW5nKHRtcCwgaSkpKTsKIAotICAgICAgICBpZiAobWVzc2FnZUJ1YmJs
ZSkKLSAgICAgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQobWVzc2FnZUJ1YmJsZSk7Ci0gICAgfSwK
LQotICAgIHN5bnRheEhpZ2hsaWdodEphdmFzY3JpcHQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIHZhciB0YWJsZSA9IHRoaXMuZWxlbWVudC5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoInRhYmxlIilbMF07Ci0gICAgICAgIGlmICghdGFibGUpCi0gICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBpZiAobWVzc2FnZUJ1YmJsZSkKKyAgICAgICAgICAgICAgICBs
aW5lLmFwcGVuZENoaWxkKG1lc3NhZ2VCdWJibGUpOworICAgICAgICB9CiAKICAgICAgICAgdmFy
IGkgPSAwOwogICAgICAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7CiAgICAgICAgIHZhciByb3dz
TGVuZ3RoID0gcm93cy5sZW5ndGg7CiAgICAgICAgIHZhciBwcmV2aW91c0NlbGwgPSBudWxsOwot
ICAgICAgICB2YXIgcHJvY2Vzc0NodW5rSW50ZXJ2YWw7Ci0KLSAgICAgICAgZnVuY3Rpb24gZGVs
ZXRlQ29udGludWVGbGFncyhjZWxsKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIWNlbGwp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgZGVsZXRlIGNlbGwuX2NvbW1l
bnRDb250aW51ZXM7Ci0gICAgICAgICAgICBkZWxldGUgY2VsbC5fc2luZ2xlUXVvdGVTdHJpbmdD
b250aW51ZXM7Ci0gICAgICAgICAgICBkZWxldGUgY2VsbC5fZG91YmxlUXVvdGVTdHJpbmdDb250
aW51ZXM7Ci0gICAgICAgICAgICBkZWxldGUgY2VsbC5fcmVnZXhwQ29udGludWVzOwotICAgICAg
ICB9CisgICAgICAgIHZhciBwcmV2aW91c01hdGNoTGVuZ3RoID0gMDsKIAogICAgICAgICAvLyBT
cGxpdCB1cCB0aGUgd29yayBpbnRvIGNodW5rcyBzbyB3ZSBkb24ndCBibG9jayB0aGUKICAgICAg
ICAgLy8gVUkgdGhyZWFkIHdoaWxlIHByb2Nlc3NpbmcuCkBAIC02NDAsNyArNjM5LDcgQEAgV2Vi
SW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB2YXIg
Y2VsbCA9IHJvdy5jZWxsc1sxXTsKICAgICAgICAgICAgICAgICBpZiAoIWNlbGwpCiAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIHRoaXMuX3N5bnRheEhpZ2hs
aWdodEphdmFzY3JpcHRMaW5lKGNlbGwsIHByZXZpb3VzQ2VsbCk7CisgICAgICAgICAgICAgICAg
c3ludGF4SGlnaGxpZ2h0SmF2YXNjcmlwdExpbmUoY2VsbCwgcHJldmlvdXNDZWxsKTsKICAgICAg
ICAgICAgICAgICBpZiAoaSA8IChlbmQgLSAxKSkKICAgICAgICAgICAgICAgICAgICAgZGVsZXRl
Q29udGludWVGbGFncyhwcmV2aW91c0NlbGwpOwogICAgICAgICAgICAgICAgIHByZXZpb3VzQ2Vs
bCA9IGNlbGw7CkBAIC02NTIsNyArNjUxLDggQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHByb2Nlc3ND
aHVuay5jYWxsKHRoaXMpOwotICAgICAgICBwcm9jZXNzQ2h1bmtJbnRlcnZhbCA9IHNldEludGVy
dmFsKHByb2Nlc3NDaHVuay5iaW5kKHRoaXMpLCAyNSk7CisgICAgICAgIHByb2Nlc3NDaHVuaygp
OworCisgICAgICAgIHZhciBwcm9jZXNzQ2h1bmtJbnRlcnZhbCA9IHNldEludGVydmFsKHByb2Nl
c3NDaHVuaywgMjUpOwogICAgIH0KIH0KLS0gCjEuNS40LjQKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>