<?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>71572</bug_id>
          
          <creation_ts>2011-11-04 10:55:38 -0700</creation_ts>
          <short_desc>String new RegExp(&apos;\n&apos;).toString() returns is invalid RegularExpressionLiteral</short_desc>
          <delta_ts>2011-11-16 10:44:40 -0800</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>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>0</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>msaboff</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>496303</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2011-11-04 10:55:38 -0700</bug_when>
    <thetext>new RegExp(&apos;\n&apos;).toString() returns 
/
/
, so this result is including LineTerminator.

And, according to ECMA262 section 15.10.6.4
&quot;The returned String has the form of a RegularExpressionLiteral that evaluates to another RegExp object with the same behaviour as this object.&quot;
http://es5.github.com/#x15.10.6.4

And, because of RegularExpressionNonTerminator, LineTerminator is not allowed in RegularExpressionLiteral. So RegExp.source should be escaped.

Furthermore, new RegExp(&apos;\\\n&apos;).toString() should provide /\n/, because /\\\n/ doesn&apos;t have the same behaviour to new RegExp(&apos;\\\n&apos;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496314</commentid>
    <comment_count>1</comment_count>
      <attachid>113682</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2011-11-04 11:04:32 -0700</bug_when>
    <thetext>Created attachment 113682
Patch

attached patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496651</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2011-11-05 04:47:49 -0700</bug_when>
    <thetext>reported issue and sent patch to V8
http://code.google.com/p/v8/issues/detail?id=1813</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501542</commentid>
    <comment_count>3</comment_count>
      <attachid>113682</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-13 14:09:36 -0800</bug_when>
    <thetext>Comment on attachment 113682
Patch

Good catch &amp; nice fix. But I think we may want to make one tweak to this patch before landing.  Most regular expressions don&apos;t contain forwards slashes or newlines, but this patch will always produce a fresh copy of the string every time source is called. Currently the code has an early return for strings that don&apos;t contain a forwards slash. We could expand this to also check for newline characters, and early return if the string contains neither forward slashes or newlines. r- for the loss of this optimization, but r+ in principle, we should definitely take this fix &amp; the code looks great otherwise. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503144</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2011-11-15 12:18:16 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 113682 [details])
&gt; Good catch &amp; nice fix. But I think we may want to make one tweak to this patch before landing.  Most regular expressions don&apos;t contain forwards slashes or newlines, but this patch will always produce a fresh copy of the string every time source is called. Currently the code has an early return for strings that don&apos;t contain a forwards slash. We could expand this to also check for newline characters, and early return if the string contains neither forward slashes or newlines. r- for the loss of this optimization, but r+ in principle, we should definitely take this fix &amp; the code looks great otherwise. :-)

Thanks for your review. You&apos;re right. I&apos;ll add early return to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503200</commentid>
    <comment_count>5</comment_count>
      <attachid>115232</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2011-11-15 13:33:02 -0800</bug_when>
    <thetext>Created attachment 115232
Patch

attached patch v2. First, checking this pattern should be escaped, and if it is false return early</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503220</commentid>
    <comment_count>6</comment_count>
      <attachid>115232</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-15 13:44:40 -0800</bug_when>
    <thetext>Comment on attachment 115232
Patch

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

Looks OK. Needs a couple small changes.

&gt; Source/JavaScriptCore/runtime/RegExpObject.cpp:124
&gt; +    bool previousIsBackSlash = false;

backslash is one word, not two, so this should be named previousCharacterWasBackslash

&gt; Source/JavaScriptCore/runtime/RegExpObject.cpp:145
&gt; +        if (ch == &apos;\n&apos; || ch == &apos;\r&apos; || (ch &amp; ~1) == 0x2028) {

This should use the inline isLineTerminator function instead of repeating its code.

&gt; Source/JavaScriptCore/runtime/RegExpObject.cpp:157
&gt; +    if (!shouldEscape)
&gt; +      return jsString(exec, pattern);

This is indented wrong. Should be indented four spaces.

&gt; Source/JavaScriptCore/runtime/RegExpObject.cpp:177
&gt; +        if (ch == &apos;\n&apos; || ch == &apos;\r&apos; || (ch &amp; ~1) == 0x2028) {

This should use the inline isLineTerminator function instead of repeating its code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503269</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2011-11-15 14:21:29 -0800</bug_when>
    <thetext>(In reply to comment #6)
Thank you for your review.

&gt; backslash is one word, not two, so this should be named previousCharacterWasBackslash
Yes, I&apos;ll rename it.

&gt; &gt; Source/JavaScriptCore/runtime/RegExpObject.cpp:145
&gt; &gt; +        if (ch == &apos;\n&apos; || ch == &apos;\r&apos; || (ch &amp; ~1) == 0x2028) {
&gt; This should use the inline isLineTerminator function instead of repeating its code.
Right, I&apos;ll change it to using Lexer&lt;UChar&gt;::isLineTerminator.

&gt; This is indented wrong. Should be indented four spaces.
Oops. This is mistake.

I&apos;ll upload revised patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503275</commentid>
    <comment_count>8</comment_count>
      <attachid>115244</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2011-11-15 14:24:10 -0800</bug_when>
    <thetext>Created attachment 115244
Patch

attached patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504009</commentid>
    <comment_count>9</comment_count>
      <attachid>115244</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-16 10:08:56 -0800</bug_when>
    <thetext>Comment on attachment 115244
Patch

Looks great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504041</commentid>
    <comment_count>10</comment_count>
      <attachid>115244</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-16 10:44:35 -0800</bug_when>
    <thetext>Comment on attachment 115244
Patch

Clearing flags on attachment: 115244

Committed r100469: &lt;http://trac.webkit.org/changeset/100469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504042</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-16 10:44:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113682</attachid>
            <date>2011-11-04 11:04:32 -0700</date>
            <delta_ts>2011-11-15 13:32:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71572-20111105030430.patch</filename>
            <type>text/plain</type>
            <size>7030</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkyODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE3
YTNlYjk2YTc3MWNiY2RkYmMzYjVhMjMwZjI1YzlmODE5ZjdmMTEuLjM2MmU4OWVlYWIxNTNmYzVl
NzdiYTYwMGYwZDFlNzA1YTBmMTU3YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDExLTExLTA0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgorCisgICAgICAgIFN0cmluZyBuZXcgUmVnRXhwKCdcbicpLnRvU3RyaW5nKCkgcmV0dXJu
cyBpcyBpbnZhbGlkIFJlZ3VsYXJFeHByZXNzaW9uTGl0ZXJhbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1NzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcDoK
KyAgICAgICAgKEpTQzo6cmVnRXhwT2JqZWN0U291cmNlKToKKwogMjAxMS0xMS0wNCAgVG9yIEFy
bmUgVmVzdGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBS
ZWZhY3RvciBhbmQgY2xlYW4gdXAgdGhlIHFtYWtlIGJ1aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggYzI0N2U5MGVhNDdi
ZDI2NmM0MmMyNmYwYmVhMmViM2MwNDYwZGEzMi4uNmRjZDU1OWQyZTE2YTA1ZDRlMGIzNTQ3ODQ3
MTdkNmJhOGJlMmQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBPYmplY3QuY3BwCkBAIC0xMTksMzkgKzExOSw0OCBAQCBKU1ZhbHVlIHJlZ0V4cE9iamVjdE11
bHRpbGluZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikK
IEpTVmFsdWUgcmVnRXhwT2JqZWN0U291cmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90
QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCiB7CiAgICAgVVN0cmluZyBwYXR0ZXJuID0gYXNSZWdF
eHBPYmplY3Qoc2xvdEJhc2UpLT5yZWdFeHAoKS0+cGF0dGVybigpOwotCi0gICAgc2l6ZV90IGZv
cndhcmRTbGFzaFBvc2l0aW9uID0gcGF0dGVybi5maW5kKCcvJyk7Ci0gICAgaWYgKGZvcndhcmRT
bGFzaFBvc2l0aW9uID09IG5vdEZvdW5kKQotICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywg
cGF0dGVybik7Ci0KLSAgICAvLyAnY29tcGxldGVkJyB0cmFja3MgdGhlIGxlbmd0aCBvZiBvcmln
aW5hbCBwYXR0ZXJuIGFscmVhZHkgY29waWVkCi0gICAgLy8gaW50byB0aGUgcmVzdWx0IGJ1ZmZl
ci4KLSAgICBzaXplX3QgY29tcGxldGVkID0gMDsKICAgICBVU3RyaW5nQnVpbGRlciByZXN1bHQ7
Ci0KLSAgICBkbyB7Ci0gICAgICAgIC8vICdzbGFzaGVzUG9zaXRpb24nIHBvaW50cyB0byB0aGUg
Zmlyc3QgKG9mIHBvc3NpYmx5IHplcm8pIGJhY2tzbGFzaAotICAgICAgICAvLyBwcmlvciB0byB0
aGUgZm9yd2FyZHMgc2xhc2guCi0gICAgICAgIHNpemVfdCBzbGFzaGVzUG9zaXRpb24gPSBmb3J3
YXJkU2xhc2hQb3NpdGlvbjsKLSAgICAgICAgd2hpbGUgKHNsYXNoZXNQb3NpdGlvbiAmJiBwYXR0
ZXJuW3NsYXNoZXNQb3NpdGlvbiAtIDFdID09ICdcXCcpCi0gICAgICAgICAgICAtLXNsYXNoZXNQ
b3NpdGlvbjsKLQotICAgICAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSBudW1iZXIgb2YgYmFja3Ns
YXNoZXMgaXMgb2RkIG9yIGV2ZW4gLQotICAgICAgICAvLyBpZiBvZGQsIHRoZSBmb3J3YXJkcyBz
bGFzaCBpcyBhbHJlYWR5IGVzY2FwZWQsIHNvIHdlIG11c3RuJ3QKLSAgICAgICAgLy8gZG91Ymxl
IGVzY2FwZSBpdC4KLSAgICAgICAgaWYgKChmb3J3YXJkU2xhc2hQb3NpdGlvbiAtIHNsYXNoZXNQ
b3NpdGlvbikgJiAxKQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYXR0ZXJuLnN1YnN0cmlu
Z1NoYXJpbmdJbXBsKGNvbXBsZXRlZCwgZm9yd2FyZFNsYXNoUG9zaXRpb24gLSBjb21wbGV0ZWQg
KyAxKSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYXR0ZXJu
LnN1YnN0cmluZ1NoYXJpbmdJbXBsKGNvbXBsZXRlZCwgZm9yd2FyZFNsYXNoUG9zaXRpb24gLSBj
b21wbGV0ZWQpKTsKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxcLyIpOworICAgIHVuc2ln
bmVkIGxlbmd0aCA9IHBhdHRlcm4ubGVuZ3RoKCk7CisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3Rl
cnMgPSBwYXR0ZXJuLmNoYXJhY3RlcnMoKTsKKyAgICBib29sIHByZXZpb3VzSXNCYWNrU2xhc2gg
PSBmYWxzZTsKKyAgICBib29sIGluQnJhY2tldHMgPSBmYWxzZTsKKworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBVQ2hhciBjaCA9IGNoYXJhY3Rl
cnNbaV07CisgICAgICAgIGlmICghcHJldmlvdXNJc0JhY2tTbGFzaCkgeworICAgICAgICAgICAg
aWYgKGluQnJhY2tldHMpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ10nKQorICAgICAg
ICAgICAgICAgICAgICBpbkJyYWNrZXRzID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIGlmIChjaCA9PSAnLycpCisgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2ggPT0gJ1snKQorICAg
ICAgICAgICAgICAgICAgICBpbkJyYWNrZXRzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfQotICAgICAgICBjb21wbGV0ZWQgPSBmb3J3YXJkU2xhc2hQb3NpdGlvbiArIDE7CiAKLSAg
ICAgICAgZm9yd2FyZFNsYXNoUG9zaXRpb24gPSBwYXR0ZXJuLmZpbmQoJy8nLCBjb21wbGV0ZWQp
OwotICAgIH0gd2hpbGUgKGZvcndhcmRTbGFzaFBvc2l0aW9uICE9IG5vdEZvdW5kKTsKKyAgICAg
ICAgLy8gZXNjYXBlIExpbmVUZXJtaW5hdG9yCisgICAgICAgIGlmIChjaCA9PSAnXG4nIHx8IGNo
ID09ICdccicgfHwgKGNoICYgfjEpID09IDB4MjAyOCkgeworICAgICAgICAgICAgaWYgKCFwcmV2
aW91c0lzQmFja1NsYXNoKQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xcJyk7CisK
KyAgICAgICAgICAgIGlmIChjaCA9PSAnXG4nKQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJ24nKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNoID09ICdccicpCisgICAgICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgncicpOworICAgICAgICAgICAgZWxzZSBpZiAoY2ggPT0gMHgyMDI4
KQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoInUyMDI4Iik7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgidTIwMjkiKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNoKTsKKworICAgICAgICBpZiAocHJldmlv
dXNJc0JhY2tTbGFzaCkKKyAgICAgICAgICAgIHByZXZpb3VzSXNCYWNrU2xhc2ggPSBmYWxzZTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJldmlvdXNJc0JhY2tTbGFzaCA9IGNoID09ICdc
XCc7CisgICAgfQogCi0gICAgLy8gQ29weSBpbiB0aGUgcmVtYWluZGVyIG9mIHRoZSBwYXR0ZXJu
IHRvIHRoZSBidWZmZXIuCi0gICAgcmVzdWx0LmFwcGVuZChwYXR0ZXJuLnN1YnN0cmluZ1NoYXJp
bmdJbXBsKGNvbXBsZXRlZCkpOwogICAgIHJldHVybiBqc1N0cmluZyhleGVjLCByZXN1bHQudG9V
U3RyaW5nKCkpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzUxZmIwZjRjOGY5ZDRiM2ZiNDFhMzc0NGVjZjU0YzQy
ZGZkNjA2My4uYjdlY2ZhNjVjMzA4MWJjZjY2NTgyODA3M2NhMmEzZjhjN2U1NzIwMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDExLTExLTA0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIFN0cmluZyBuZXcgUmVnRXhwKCdcbicpLnRvU3RyaW5nKCkg
cmV0dXJucyBpcyBpbnZhbGlkIFJlZ3VsYXJFeHByZXNzaW9uTGl0ZXJhbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1NzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVnZXgvc2NyaXB0LXRl
c3RzL3RvU3RyaW5nLmpzOgorICAgICAgICAodGVzdExpbmVUZXJtaW5hdG9yKToKKyAgICAgICAg
KiBmYXN0L3JlZ2V4L3RvU3RyaW5nLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0xMS0wNCAgQ3NhYmEg
T3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdl
ZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3NjcmlwdC10
ZXN0cy90b1N0cmluZy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnZXgvc2NyaXB0LXRlc3RzL3Rv
U3RyaW5nLmpzCmluZGV4IDcyNjBiMDA2ZjQ5NTJiMzY2NDg2NzIyZjEyMjkwNDc2ZDFhYjkxOGQu
LjhhMGJiZWE3NDE5MzQ4OTZjOWE5YjQyNjA4MDIyN2IxZTM0ZTQxMjggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnZXgvc2NyaXB0LXRlc3RzL3RvU3RyaW5nLmpzCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnZXgvc2NyaXB0LXRlc3RzL3RvU3RyaW5nLmpzCkBAIC0xMCw2ICsxMCwx
MyBAQCBmdW5jdGlvbiB0ZXN0Rm9yd2FyZFNsYXNoKHBhdHRlcm4sIF9zdHJpbmcpCiAgICAgcmV0
dXJuIHJlMS50ZXN0KHN0cmluZykgJiYgcmUyLnRlc3Qoc3RyaW5nKTsKIH0KIAorZnVuY3Rpb24g
dGVzdExpbmVUZXJtaW5hdG9yKHBhdHRlcm4pCit7CisgICAgcmUxID0gbmV3IFJlZ0V4cChwYXR0
ZXJuKTsKKworICAgIHJldHVybiAvXG58XHJ8XHUyMDI4fFx1MjAyOS8udGVzdChyZTEudG9TdHJp
bmcoKSk7Cit9CisKIHNob3VsZEJlKCJSZWdFeHAoJy8nKS5zb3VyY2UiLCAnIlxcXFwvIicpOwog
c2hvdWxkQmUoIlJlZ0V4cCgnJykuc291cmNlIiwgJyIiJyk7CiBzaG91bGRCZSgiUmVnRXhwLnBy
b3RvdHlwZS5zb3VyY2UiLCAnIiInKTsKQEAgLTM1LDMgKzQyLDE0IEBAIHNob3VsZEJlVHJ1ZSgn
dGVzdEZvcndhcmRTbGFzaCgieFxcL3gveCIsICJ4XFwveFxcL3giKTsnKTsKIHNob3VsZEJlVHJ1
ZSgndGVzdEZvcndhcmRTbGFzaCgieC94XFwveCIsICJ4XFwveFxcL3giKTsnKTsKIHNob3VsZEJl
VHJ1ZSgndGVzdEZvcndhcmRTbGFzaCgieFxcL3hcXC94IiwgInhcXC94XFwveCIpOycpOwogCitz
aG91bGRCZUZhbHNlKCd0ZXN0TGluZVRlcm1pbmF0b3IoIlxcbiIpOycpOworc2hvdWxkQmVGYWxz
ZSgndGVzdExpbmVUZXJtaW5hdG9yKCJcXFxcbiIpOycpOworc2hvdWxkQmVGYWxzZSgndGVzdExp
bmVUZXJtaW5hdG9yKCJcXHIiKTsnKTsKK3Nob3VsZEJlRmFsc2UoJ3Rlc3RMaW5lVGVybWluYXRv
cigiXFxcXHIiKTsnKTsKK3Nob3VsZEJlRmFsc2UoJ3Rlc3RMaW5lVGVybWluYXRvcigiXFx1MjAy
OCIpOycpOworc2hvdWxkQmVGYWxzZSgndGVzdExpbmVUZXJtaW5hdG9yKCJcXFxcdTIwMjgiKTsn
KTsKK3Nob3VsZEJlRmFsc2UoJ3Rlc3RMaW5lVGVybWluYXRvcigiXFx1MjAyOSIpOycpOworc2hv
dWxkQmVGYWxzZSgndGVzdExpbmVUZXJtaW5hdG9yKCJcXFxcdTIwMjkiKTsnKTsKKworc2hvdWxk
QmUoIlJlZ0V4cCgnWy9dJykuc291cmNlIiwgIidbL10nIik7CitzaG91bGRCZSgiUmVnRXhwKCdc
XFxcWy9dJykuc291cmNlIiwgIidcXFxcW1xcXFwvXSciKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVnZXgvdG9TdHJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdleC90b1N0cmluZy1leHBlY3RlZC50eHQKaW5kZXggZjlhZjg5N2M5NjU0Nzc2MGI1YzFlODJl
M2YwNTE4MzEwYzA3NTU1Yy4uMDY4NDRhYmFkMWVkOGMyZTMwODE5NmNkNjIxNzM4Nzg4YWU0NTRi
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdleC90b1N0cmluZy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdleC90b1N0cmluZy1leHBlY3RlZC50eHQKQEAg
LTIwLDYgKzIwLDE2IEBAIFBBU1MgdGVzdEZvcndhcmRTbGFzaCgieC94L3giLCAieFwveFwveCIp
OyBpcyB0cnVlCiBQQVNTIHRlc3RGb3J3YXJkU2xhc2goInhcL3gveCIsICJ4XC94XC94Iik7IGlz
IHRydWUKIFBBU1MgdGVzdEZvcndhcmRTbGFzaCgieC94XC94IiwgInhcL3hcL3giKTsgaXMgdHJ1
ZQogUEFTUyB0ZXN0Rm9yd2FyZFNsYXNoKCJ4XC94XC94IiwgInhcL3hcL3giKTsgaXMgdHJ1ZQor
UEFTUyB0ZXN0TGluZVRlcm1pbmF0b3IoIlxuIik7IGlzIGZhbHNlCitQQVNTIHRlc3RMaW5lVGVy
bWluYXRvcigiXFxuIik7IGlzIGZhbHNlCitQQVNTIHRlc3RMaW5lVGVybWluYXRvcigiXHIiKTsg
aXMgZmFsc2UKK1BBU1MgdGVzdExpbmVUZXJtaW5hdG9yKCJcXHIiKTsgaXMgZmFsc2UKK1BBU1Mg
dGVzdExpbmVUZXJtaW5hdG9yKCJcdTIwMjgiKTsgaXMgZmFsc2UKK1BBU1MgdGVzdExpbmVUZXJt
aW5hdG9yKCJcXHUyMDI4Iik7IGlzIGZhbHNlCitQQVNTIHRlc3RMaW5lVGVybWluYXRvcigiXHUy
MDI5Iik7IGlzIGZhbHNlCitQQVNTIHRlc3RMaW5lVGVybWluYXRvcigiXFx1MjAyOSIpOyBpcyBm
YWxzZQorUEFTUyBSZWdFeHAoJ1svXScpLnNvdXJjZSBpcyAnWy9dJworUEFTUyBSZWdFeHAoJ1xc
Wy9dJykuc291cmNlIGlzICdcXFtcXC9dJwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCiBURVNUIENPTVBMRVRFCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115232</attachid>
            <date>2011-11-15 13:33:02 -0800</date>
            <delta_ts>2011-11-15 14:24:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71572-20111116063300.patch</filename>
            <type>text/plain</type>
            <size>8058</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
M2RkMzg4MzViODliMmMxY2QxMzZlNzkwNGExODNlMjgzMzdhMGFlLi5hZTA3ZTNiYWVmZTU1MzMz
YzRmODgxN2U5ZWRmZTIxYTNiZjBjYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxMS0xMS0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBTdHJpbmcgbmV3IFJlZ0V4cCgnXG4nKS50b1N0cmluZygpIHJldHVy
bnMgaXMgaW52YWxpZCBSZWd1bGFyRXhwcmVzc2lvbkxpdGVyYWwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNTcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgR2F2aW4gQmFycmFjbG91Z2guCisKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OnJlZ0V4cE9iamVjdFNvdXJjZSk6CisKIDIwMTEtMTEtMTUgIEdh
dmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc3Vs
dCBvZiBFcnJvci5wcm90b3R5cGUudG9TdHJpbmcgbm90IEVTNSBjb25mb3JtYW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAppbmRleCAzMGMwMTdl
MmQ4MGFjNzc3YjU2MjZiNTgwMGUxMzJjM2RkNTE3Yjg5Li41NDM2NzQxNDM3ODc3YzBjYTAzOWE2
MGNiMjgxOGNkYmE0ZDFlYWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5jcHAKQEAgLTExOSwzOSArMTE5LDgyIEBAIEpTVmFsdWUgcmVnRXhwT2Jq
ZWN0TXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZp
ZXImKQogSlNWYWx1ZSByZWdFeHBPYmplY3RTb3VyY2UoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAgICBVU3RyaW5nIHBhdHRlcm4gPSBh
c1JlZ0V4cE9iamVjdChzbG90QmFzZSktPnJlZ0V4cCgpLT5wYXR0ZXJuKCk7CisgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gcGF0dGVybi5sZW5ndGgoKTsKKyAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVy
cyA9IHBhdHRlcm4uY2hhcmFjdGVycygpOworICAgIGJvb2wgcHJldmlvdXNJc0JhY2tTbGFzaCA9
IGZhbHNlOworICAgIGJvb2wgaW5CcmFja2V0cyA9IGZhbHNlOworICAgIGJvb2wgc2hvdWxkRXNj
YXBlID0gZmFsc2U7CisKKyAgICAvLyBlYXJseSByZXR1cm4gZm9yIHN0cmluZ3MgdGhhdCBkb24n
dCBjb250YWluIGEgZm9yd2FyZHMgc2xhc2ggYW5kIExpbmVUZXJtaW5hdG9yCisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIFVDaGFyIGNoID0gY2hh
cmFjdGVyc1tpXTsKKyAgICAgICAgaWYgKCFwcmV2aW91c0lzQmFja1NsYXNoKSB7CisgICAgICAg
ICAgICBpZiAoaW5CcmFja2V0cykgeworICAgICAgICAgICAgICAgIGlmIChjaCA9PSAnXScpCisg
ICAgICAgICAgICAgICAgICAgIGluQnJhY2tldHMgPSBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgaWYgKGNoID09ICcvJykgeworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRFc2NhcGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNoID09ICdbJykKKyAgICAgICAgICAg
ICAgICAgICAgaW5CcmFja2V0cyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KIAot
ICAgIHNpemVfdCBmb3J3YXJkU2xhc2hQb3NpdGlvbiA9IHBhdHRlcm4uZmluZCgnLycpOwotICAg
IGlmIChmb3J3YXJkU2xhc2hQb3NpdGlvbiA9PSBub3RGb3VuZCkKLSAgICAgICAgcmV0dXJuIGpz
U3RyaW5nKGV4ZWMsIHBhdHRlcm4pOworICAgICAgICBpZiAoY2ggPT0gJ1xuJyB8fCBjaCA9PSAn
XHInIHx8IChjaCAmIH4xKSA9PSAweDIwMjgpIHsKKyAgICAgICAgICAgIHNob3VsZEVzY2FwZSA9
IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogCi0gICAgLy8gJ2NvbXBsZXRl
ZCcgdHJhY2tzIHRoZSBsZW5ndGggb2Ygb3JpZ2luYWwgcGF0dGVybiBhbHJlYWR5IGNvcGllZAot
ICAgIC8vIGludG8gdGhlIHJlc3VsdCBidWZmZXIuCi0gICAgc2l6ZV90IGNvbXBsZXRlZCA9IDA7
Ci0gICAgVVN0cmluZ0J1aWxkZXIgcmVzdWx0OworICAgICAgICBpZiAocHJldmlvdXNJc0JhY2tT
bGFzaCkKKyAgICAgICAgICAgIHByZXZpb3VzSXNCYWNrU2xhc2ggPSBmYWxzZTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgcHJldmlvdXNJc0JhY2tTbGFzaCA9IGNoID09ICdcXCc7CisgICAg
fQogCi0gICAgZG8gewotICAgICAgICAvLyAnc2xhc2hlc1Bvc2l0aW9uJyBwb2ludHMgdG8gdGhl
IGZpcnN0IChvZiBwb3NzaWJseSB6ZXJvKSBiYWNrc2xhc2gKLSAgICAgICAgLy8gcHJpb3IgdG8g
dGhlIGZvcndhcmRzIHNsYXNoLgotICAgICAgICBzaXplX3Qgc2xhc2hlc1Bvc2l0aW9uID0gZm9y
d2FyZFNsYXNoUG9zaXRpb247Ci0gICAgICAgIHdoaWxlIChzbGFzaGVzUG9zaXRpb24gJiYgcGF0
dGVybltzbGFzaGVzUG9zaXRpb24gLSAxXSA9PSAnXFwnKQotICAgICAgICAgICAgLS1zbGFzaGVz
UG9zaXRpb247Ci0KLSAgICAgICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgbnVtYmVyIG9mIGJhY2tz
bGFzaGVzIGlzIG9kZCBvciBldmVuIC0KLSAgICAgICAgLy8gaWYgb2RkLCB0aGUgZm9yd2FyZHMg
c2xhc2ggaXMgYWxyZWFkeSBlc2NhcGVkLCBzbyB3ZSBtdXN0bid0Ci0gICAgICAgIC8vIGRvdWJs
ZSBlc2NhcGUgaXQuCi0gICAgICAgIGlmICgoZm9yd2FyZFNsYXNoUG9zaXRpb24gLSBzbGFzaGVz
UG9zaXRpb24pICYgMSkKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGF0dGVybi5zdWJzdHJp
bmdTaGFyaW5nSW1wbChjb21wbGV0ZWQsIGZvcndhcmRTbGFzaFBvc2l0aW9uIC0gY29tcGxldGVk
ICsgMSkpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGF0dGVy
bi5zdWJzdHJpbmdTaGFyaW5nSW1wbChjb21wbGV0ZWQsIGZvcndhcmRTbGFzaFBvc2l0aW9uIC0g
Y29tcGxldGVkKSk7Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJcXC8iKTsKKyAgICBpZiAo
IXNob3VsZEVzY2FwZSkKKyAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBwYXR0ZXJuKTsKKwor
ICAgIHByZXZpb3VzSXNCYWNrU2xhc2ggPSBmYWxzZTsKKyAgICBpbkJyYWNrZXRzID0gZmFsc2U7
CisgICAgVVN0cmluZ0J1aWxkZXIgcmVzdWx0OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkgeworICAgICAgICBVQ2hhciBjaCA9IGNoYXJhY3RlcnNbaV07CisgICAg
ICAgIGlmICghcHJldmlvdXNJc0JhY2tTbGFzaCkgeworICAgICAgICAgICAgaWYgKGluQnJhY2tl
dHMpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ10nKQorICAgICAgICAgICAgICAgICAg
ICBpbkJyYWNrZXRzID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIGlmIChjaCA9PSAnLycpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xc
Jyk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2ggPT0gJ1snKQorICAgICAgICAgICAgICAg
ICAgICBpbkJyYWNrZXRzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAg
ICBjb21wbGV0ZWQgPSBmb3J3YXJkU2xhc2hQb3NpdGlvbiArIDE7CiAKLSAgICAgICAgZm9yd2Fy
ZFNsYXNoUG9zaXRpb24gPSBwYXR0ZXJuLmZpbmQoJy8nLCBjb21wbGV0ZWQpOwotICAgIH0gd2hp
bGUgKGZvcndhcmRTbGFzaFBvc2l0aW9uICE9IG5vdEZvdW5kKTsKKyAgICAgICAgLy8gZXNjYXBl
IExpbmVUZXJtaW5hdG9yCisgICAgICAgIGlmIChjaCA9PSAnXG4nIHx8IGNoID09ICdccicgfHwg
KGNoICYgfjEpID09IDB4MjAyOCkgeworICAgICAgICAgICAgaWYgKCFwcmV2aW91c0lzQmFja1Ns
YXNoKQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xcJyk7CisKKyAgICAgICAgICAg
IGlmIChjaCA9PSAnXG4nKQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ24nKTsKKyAg
ICAgICAgICAgIGVsc2UgaWYgKGNoID09ICdccicpCisgICAgICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgncicpOworICAgICAgICAgICAgZWxzZSBpZiAoY2ggPT0gMHgyMDI4KQorICAgICAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoInUyMDI4Iik7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgidTIwMjkiKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKGNoKTsKKworICAgICAgICBpZiAocHJldmlvdXNJc0JhY2tTbGFz
aCkKKyAgICAgICAgICAgIHByZXZpb3VzSXNCYWNrU2xhc2ggPSBmYWxzZTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgcHJldmlvdXNJc0JhY2tTbGFzaCA9IGNoID09ICdcXCc7CisgICAgfQog
Ci0gICAgLy8gQ29weSBpbiB0aGUgcmVtYWluZGVyIG9mIHRoZSBwYXR0ZXJuIHRvIHRoZSBidWZm
ZXIuCi0gICAgcmVzdWx0LmFwcGVuZChwYXR0ZXJuLnN1YnN0cmluZ1NoYXJpbmdJbXBsKGNvbXBs
ZXRlZCkpOwogICAgIHJldHVybiBqc1N0cmluZyhleGVjLCByZXN1bHQudG9VU3RyaW5nKCkpOwog
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNjA0Yzc3MGNkNDE4MWRmNzY2NTVlNjdmODU1NWU5YWUxMjcwYzk2NS4uNjc3
ZmM0NjhmMjY0ZjE2NzU0OTljYTBmM2ZlZDA1MGVhYzgxYmE2NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDExLTExLTE1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgor
CisgICAgICAgIFN0cmluZyBuZXcgUmVnRXhwKCdcbicpLnRvU3RyaW5nKCkgcmV0dXJucyBpcyBp
bnZhbGlkIFJlZ3VsYXJFeHByZXNzaW9uTGl0ZXJhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1NzIKKworICAgICAgICBSZXZpZXdlZCBieSBHYXZp
biBCYXJyYWNsb3VnaC4KKworICAgICAgICAqIGZhc3QvcmVnZXgvc2NyaXB0LXRlc3RzL3RvU3Ry
aW5nLmpzOgorICAgICAgICAodGVzdExpbmVUZXJtaW5hdG9yKToKKyAgICAgICAgKiBmYXN0L3Jl
Z2V4L3RvU3RyaW5nLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0xMS0xNSAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjEwMDI5MS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnZXgvc2NyaXB0
LXRlc3RzL3RvU3RyaW5nLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMv
dG9TdHJpbmcuanMKaW5kZXggNzI2MGIwMDZmNDk1MmIzNjY0ODY3MjJmMTIyOTA0NzZkMWFiOTE4
ZC4uOGEwYmJlYTc0MTkzNDg5NmM5YTliNDI2MDgwMjI3YjFlMzRlNDEyOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMvdG9TdHJpbmcuanMKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMvdG9TdHJpbmcuanMKQEAgLTEwLDYgKzEw
LDEzIEBAIGZ1bmN0aW9uIHRlc3RGb3J3YXJkU2xhc2gocGF0dGVybiwgX3N0cmluZykKICAgICBy
ZXR1cm4gcmUxLnRlc3Qoc3RyaW5nKSAmJiByZTIudGVzdChzdHJpbmcpOwogfQogCitmdW5jdGlv
biB0ZXN0TGluZVRlcm1pbmF0b3IocGF0dGVybikKK3sKKyAgICByZTEgPSBuZXcgUmVnRXhwKHBh
dHRlcm4pOworCisgICAgcmV0dXJuIC9cbnxccnxcdTIwMjh8XHUyMDI5Ly50ZXN0KHJlMS50b1N0
cmluZygpKTsKK30KKwogc2hvdWxkQmUoIlJlZ0V4cCgnLycpLnNvdXJjZSIsICciXFxcXC8iJyk7
CiBzaG91bGRCZSgiUmVnRXhwKCcnKS5zb3VyY2UiLCAnIiInKTsKIHNob3VsZEJlKCJSZWdFeHAu
cHJvdG90eXBlLnNvdXJjZSIsICciIicpOwpAQCAtMzUsMyArNDIsMTQgQEAgc2hvdWxkQmVUcnVl
KCd0ZXN0Rm9yd2FyZFNsYXNoKCJ4XFwveC94IiwgInhcXC94XFwveCIpOycpOwogc2hvdWxkQmVU
cnVlKCd0ZXN0Rm9yd2FyZFNsYXNoKCJ4L3hcXC94IiwgInhcXC94XFwveCIpOycpOwogc2hvdWxk
QmVUcnVlKCd0ZXN0Rm9yd2FyZFNsYXNoKCJ4XFwveFxcL3giLCAieFxcL3hcXC94Iik7Jyk7CiAK
K3Nob3VsZEJlRmFsc2UoJ3Rlc3RMaW5lVGVybWluYXRvcigiXFxuIik7Jyk7CitzaG91bGRCZUZh
bHNlKCd0ZXN0TGluZVRlcm1pbmF0b3IoIlxcXFxuIik7Jyk7CitzaG91bGRCZUZhbHNlKCd0ZXN0
TGluZVRlcm1pbmF0b3IoIlxcciIpOycpOworc2hvdWxkQmVGYWxzZSgndGVzdExpbmVUZXJtaW5h
dG9yKCJcXFxcciIpOycpOworc2hvdWxkQmVGYWxzZSgndGVzdExpbmVUZXJtaW5hdG9yKCJcXHUy
MDI4Iik7Jyk7CitzaG91bGRCZUZhbHNlKCd0ZXN0TGluZVRlcm1pbmF0b3IoIlxcXFx1MjAyOCIp
OycpOworc2hvdWxkQmVGYWxzZSgndGVzdExpbmVUZXJtaW5hdG9yKCJcXHUyMDI5Iik7Jyk7Citz
aG91bGRCZUZhbHNlKCd0ZXN0TGluZVRlcm1pbmF0b3IoIlxcXFx1MjAyOSIpOycpOworCitzaG91
bGRCZSgiUmVnRXhwKCdbL10nKS5zb3VyY2UiLCAiJ1svXSciKTsKK3Nob3VsZEJlKCJSZWdFeHAo
J1xcXFxbL10nKS5zb3VyY2UiLCAiJ1xcXFxbXFxcXC9dJyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdleC90b1N0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2V4L3RvU3RyaW5nLWV4cGVjdGVkLnR4dAppbmRleCBmOWFmODk3Yzk2NTQ3NzYwYjVjMWU4
MmUzZjA1MTgzMTBjMDc1NTVjLi4wNjg0NGFiYWQxZWQ4YzJlMzA4MTk2Y2Q2MjE3Mzg3ODhhZTQ1
NGJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3RvU3RyaW5nLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3RvU3RyaW5nLWV4cGVjdGVkLnR4dApA
QCAtMjAsNiArMjAsMTYgQEAgUEFTUyB0ZXN0Rm9yd2FyZFNsYXNoKCJ4L3gveCIsICJ4XC94XC94
Iik7IGlzIHRydWUKIFBBU1MgdGVzdEZvcndhcmRTbGFzaCgieFwveC94IiwgInhcL3hcL3giKTsg
aXMgdHJ1ZQogUEFTUyB0ZXN0Rm9yd2FyZFNsYXNoKCJ4L3hcL3giLCAieFwveFwveCIpOyBpcyB0
cnVlCiBQQVNTIHRlc3RGb3J3YXJkU2xhc2goInhcL3hcL3giLCAieFwveFwveCIpOyBpcyB0cnVl
CitQQVNTIHRlc3RMaW5lVGVybWluYXRvcigiXG4iKTsgaXMgZmFsc2UKK1BBU1MgdGVzdExpbmVU
ZXJtaW5hdG9yKCJcXG4iKTsgaXMgZmFsc2UKK1BBU1MgdGVzdExpbmVUZXJtaW5hdG9yKCJcciIp
OyBpcyBmYWxzZQorUEFTUyB0ZXN0TGluZVRlcm1pbmF0b3IoIlxcciIpOyBpcyBmYWxzZQorUEFT
UyB0ZXN0TGluZVRlcm1pbmF0b3IoIlx1MjAyOCIpOyBpcyBmYWxzZQorUEFTUyB0ZXN0TGluZVRl
cm1pbmF0b3IoIlxcdTIwMjgiKTsgaXMgZmFsc2UKK1BBU1MgdGVzdExpbmVUZXJtaW5hdG9yKCJc
dTIwMjkiKTsgaXMgZmFsc2UKK1BBU1MgdGVzdExpbmVUZXJtaW5hdG9yKCJcXHUyMDI5Iik7IGlz
IGZhbHNlCitQQVNTIFJlZ0V4cCgnWy9dJykuc291cmNlIGlzICdbL10nCitQQVNTIFJlZ0V4cCgn
XFxbL10nKS5zb3VyY2UgaXMgJ1xcW1xcL10nCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115244</attachid>
            <date>2011-11-15 14:24:10 -0800</date>
            <delta_ts>2011-11-16 10:44:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71572-20111116072409.patch</filename>
            <type>text/plain</type>
            <size>8304</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
M2RkMzg4MzViODliMmMxY2QxMzZlNzkwNGExODNlMjgzMzdhMGFlLi5hYjc1NjU3ZTlmMGJjMTQ3
OTMwNmM5NGI3N2UwZDU3MGY2NjgzZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxMS0xMS0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBTdHJpbmcgbmV3IFJlZ0V4cCgnXG4nKS50b1N0cmluZygpIHJldHVy
bnMgaXMgaW52YWxpZCBSZWd1bGFyRXhwcmVzc2lvbkxpdGVyYWwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNTcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgR2F2aW4gQmFycmFjbG91Z2ggYW5kIERhcmluIEFkbGVyLgorCisgICAgICAgICogcnVudGlt
ZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpyZWdFeHBPYmplY3RTb3VyY2UpOgor
CiAyMDExLTExLTE1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXN1bHQgb2YgRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nIG5vdCBFUzUgY29u
Zm9ybWFudApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHAKaW5kZXggMzBjMDE3ZTJkODBhYzc3N2I1NjI2YjU4MDBlMTMyYzNkZDUxN2I4OS4uNzIxM2Rj
MjdjMTU1NzdjYjI4NWJiNDI4MDg3MDM4Mzg2YmVmYzg0MyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAi
SlNTdHJpbmcuaCIKKyNpbmNsdWRlICJMZXhlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgogI2lu
Y2x1ZGUgIlJlZ0V4cENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUmVnRXhwUHJvdG90eXBlLmgi
CkBAIC0xMTksMzkgKzEyMCw4MiBAQCBKU1ZhbHVlIHJlZ0V4cE9iamVjdE11bHRpbGluZShFeGVj
U3RhdGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIEpTVmFsdWUgcmVn
RXhwT2JqZWN0U291cmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3Qg
SWRlbnRpZmllciYpCiB7CiAgICAgVVN0cmluZyBwYXR0ZXJuID0gYXNSZWdFeHBPYmplY3Qoc2xv
dEJhc2UpLT5yZWdFeHAoKS0+cGF0dGVybigpOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IHBhdHRl
cm4ubGVuZ3RoKCk7CisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSBwYXR0ZXJuLmNoYXJh
Y3RlcnMoKTsKKyAgICBib29sIHByZXZpb3VzQ2hhcmFjdGVyV2FzQmFja3NsYXNoID0gZmFsc2U7
CisgICAgYm9vbCBpbkJyYWNrZXRzID0gZmFsc2U7CisgICAgYm9vbCBzaG91bGRFc2NhcGUgPSBm
YWxzZTsKKworICAgIC8vIGVhcmx5IHJldHVybiBmb3Igc3RyaW5ncyB0aGF0IGRvbid0IGNvbnRh
aW4gYSBmb3J3YXJkcyBzbGFzaCBhbmQgTGluZVRlcm1pbmF0b3IKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgVUNoYXIgY2ggPSBjaGFyYWN0ZXJz
W2ldOworICAgICAgICBpZiAoIXByZXZpb3VzQ2hhcmFjdGVyV2FzQmFja3NsYXNoKSB7CisgICAg
ICAgICAgICBpZiAoaW5CcmFja2V0cykgeworICAgICAgICAgICAgICAgIGlmIChjaCA9PSAnXScp
CisgICAgICAgICAgICAgICAgICAgIGluQnJhY2tldHMgPSBmYWxzZTsKKyAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGNoID09ICcvJykgeworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRFc2NhcGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNoID09ICdbJykKKyAgICAgICAg
ICAgICAgICAgICAgaW5CcmFja2V0cyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KworICAgICAgICBpZiAoTGV4ZXI8VUNoYXI+Ojppc0xpbmVUZXJtaW5hdG9yKGNoKSkgeworICAg
ICAgICAgICAgc2hvdWxkRXNjYXBlID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CiAKLSAgICBzaXplX3QgZm9yd2FyZFNsYXNoUG9zaXRpb24gPSBwYXR0ZXJuLmZpbmQoJy8n
KTsKLSAgICBpZiAoZm9yd2FyZFNsYXNoUG9zaXRpb24gPT0gbm90Rm91bmQpCisgICAgICAgIGlm
IChwcmV2aW91c0NoYXJhY3Rlcldhc0JhY2tzbGFzaCkKKyAgICAgICAgICAgIHByZXZpb3VzQ2hh
cmFjdGVyV2FzQmFja3NsYXNoID0gZmFsc2U7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBy
ZXZpb3VzQ2hhcmFjdGVyV2FzQmFja3NsYXNoID0gY2ggPT0gJ1xcJzsKKyAgICB9CisKKyAgICBp
ZiAoIXNob3VsZEVzY2FwZSkKICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIHBhdHRlcm4p
OwogCi0gICAgLy8gJ2NvbXBsZXRlZCcgdHJhY2tzIHRoZSBsZW5ndGggb2Ygb3JpZ2luYWwgcGF0
dGVybiBhbHJlYWR5IGNvcGllZAotICAgIC8vIGludG8gdGhlIHJlc3VsdCBidWZmZXIuCi0gICAg
c2l6ZV90IGNvbXBsZXRlZCA9IDA7CisgICAgcHJldmlvdXNDaGFyYWN0ZXJXYXNCYWNrc2xhc2gg
PSBmYWxzZTsKKyAgICBpbkJyYWNrZXRzID0gZmFsc2U7CiAgICAgVVN0cmluZ0J1aWxkZXIgcmVz
dWx0OwotCi0gICAgZG8gewotICAgICAgICAvLyAnc2xhc2hlc1Bvc2l0aW9uJyBwb2ludHMgdG8g
dGhlIGZpcnN0IChvZiBwb3NzaWJseSB6ZXJvKSBiYWNrc2xhc2gKLSAgICAgICAgLy8gcHJpb3Ig
dG8gdGhlIGZvcndhcmRzIHNsYXNoLgotICAgICAgICBzaXplX3Qgc2xhc2hlc1Bvc2l0aW9uID0g
Zm9yd2FyZFNsYXNoUG9zaXRpb247Ci0gICAgICAgIHdoaWxlIChzbGFzaGVzUG9zaXRpb24gJiYg
cGF0dGVybltzbGFzaGVzUG9zaXRpb24gLSAxXSA9PSAnXFwnKQotICAgICAgICAgICAgLS1zbGFz
aGVzUG9zaXRpb247Ci0KLSAgICAgICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgbnVtYmVyIG9mIGJh
Y2tzbGFzaGVzIGlzIG9kZCBvciBldmVuIC0KLSAgICAgICAgLy8gaWYgb2RkLCB0aGUgZm9yd2Fy
ZHMgc2xhc2ggaXMgYWxyZWFkeSBlc2NhcGVkLCBzbyB3ZSBtdXN0bid0Ci0gICAgICAgIC8vIGRv
dWJsZSBlc2NhcGUgaXQuCi0gICAgICAgIGlmICgoZm9yd2FyZFNsYXNoUG9zaXRpb24gLSBzbGFz
aGVzUG9zaXRpb24pICYgMSkKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGF0dGVybi5zdWJz
dHJpbmdTaGFyaW5nSW1wbChjb21wbGV0ZWQsIGZvcndhcmRTbGFzaFBvc2l0aW9uIC0gY29tcGxl
dGVkICsgMSkpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGF0
dGVybi5zdWJzdHJpbmdTaGFyaW5nSW1wbChjb21wbGV0ZWQsIGZvcndhcmRTbGFzaFBvc2l0aW9u
IC0gY29tcGxldGVkKSk7Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJcXC8iKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgVUNoYXIgY2gg
PSBjaGFyYWN0ZXJzW2ldOworICAgICAgICBpZiAoIXByZXZpb3VzQ2hhcmFjdGVyV2FzQmFja3Ns
YXNoKSB7CisgICAgICAgICAgICBpZiAoaW5CcmFja2V0cykgeworICAgICAgICAgICAgICAgIGlm
IChjaCA9PSAnXScpCisgICAgICAgICAgICAgICAgICAgIGluQnJhY2tldHMgPSBmYWxzZTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGNoID09ICcvJykKKyAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICBlbHNl
IGlmIChjaCA9PSAnWycpCisgICAgICAgICAgICAgICAgICAgIGluQnJhY2tldHMgPSB0cnVlOwor
ICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGNvbXBsZXRlZCA9IGZvcndhcmRTbGFz
aFBvc2l0aW9uICsgMTsKIAotICAgICAgICBmb3J3YXJkU2xhc2hQb3NpdGlvbiA9IHBhdHRlcm4u
ZmluZCgnLycsIGNvbXBsZXRlZCk7Ci0gICAgfSB3aGlsZSAoZm9yd2FyZFNsYXNoUG9zaXRpb24g
IT0gbm90Rm91bmQpOworICAgICAgICAvLyBlc2NhcGUgTGluZVRlcm1pbmF0b3IKKyAgICAgICAg
aWYgKExleGVyPFVDaGFyPjo6aXNMaW5lVGVybWluYXRvcihjaCkpIHsKKyAgICAgICAgICAgIGlm
ICghcHJldmlvdXNDaGFyYWN0ZXJXYXNCYWNrc2xhc2gpCisgICAgICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnXFwnKTsKKworICAgICAgICAgICAgaWYgKGNoID09ICdcbicpCisgICAgICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnbicpOworICAgICAgICAgICAgZWxzZSBpZiAoY2ggPT0gJ1xy
JykKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdyJyk7CisgICAgICAgICAgICBlbHNl
IGlmIChjaCA9PSAweDIwMjgpCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgidTIwMjgi
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJ1MjAy
OSIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2gpOworCisg
ICAgICAgIGlmIChwcmV2aW91c0NoYXJhY3Rlcldhc0JhY2tzbGFzaCkKKyAgICAgICAgICAgIHBy
ZXZpb3VzQ2hhcmFjdGVyV2FzQmFja3NsYXNoID0gZmFsc2U7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHByZXZpb3VzQ2hhcmFjdGVyV2FzQmFja3NsYXNoID0gY2ggPT0gJ1xcJzsKKyAgICB9
CiAKLSAgICAvLyBDb3B5IGluIHRoZSByZW1haW5kZXIgb2YgdGhlIHBhdHRlcm4gdG8gdGhlIGJ1
ZmZlci4KLSAgICByZXN1bHQuYXBwZW5kKHBhdHRlcm4uc3Vic3RyaW5nU2hhcmluZ0ltcGwoY29t
cGxldGVkKSk7CiAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIHJlc3VsdC50b1VTdHJpbmcoKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA2MDRjNzcwY2Q0MTgxZGY3NjY1NWU2N2Y4NTU1ZTlhZTEyNzBjOTY1Li5h
NDE0OGI5MjI5OWMwNDZhZTk3OTExMTRjNTBmMmIyNzA2ZDY4MWFkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTEtMTEtMTUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKKyAgICAgICAgU3RyaW5nIG5ldyBSZWdFeHAoJ1xuJykudG9TdHJpbmcoKSByZXR1cm5zIGlz
IGludmFsaWQgUmVndWxhckV4cHJlc3Npb25MaXRlcmFsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTU3MgorCisgICAgICAgIFJldmlld2VkIGJ5IEdh
dmluIEJhcnJhY2xvdWdoIGFuZCBEYXJpbiBBZGxlci4KKworICAgICAgICAqIGZhc3QvcmVnZXgv
c2NyaXB0LXRlc3RzL3RvU3RyaW5nLmpzOgorICAgICAgICAodGVzdExpbmVUZXJtaW5hdG9yKToK
KyAgICAgICAgKiBmYXN0L3JlZ2V4L3RvU3RyaW5nLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0xMS0x
NSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwMDI5MS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnZXgvc2NyaXB0LXRlc3RzL3RvU3RyaW5nLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdleC9zY3JpcHQtdGVzdHMvdG9TdHJpbmcuanMKaW5kZXggNzI2MGIwMDZmNDk1MmIzNjY0ODY3
MjJmMTIyOTA0NzZkMWFiOTE4ZC4uOGEwYmJlYTc0MTkzNDg5NmM5YTliNDI2MDgwMjI3YjFlMzRl
NDEyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMvdG9T
dHJpbmcuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMvdG9TdHJp
bmcuanMKQEAgLTEwLDYgKzEwLDEzIEBAIGZ1bmN0aW9uIHRlc3RGb3J3YXJkU2xhc2gocGF0dGVy
biwgX3N0cmluZykKICAgICByZXR1cm4gcmUxLnRlc3Qoc3RyaW5nKSAmJiByZTIudGVzdChzdHJp
bmcpOwogfQogCitmdW5jdGlvbiB0ZXN0TGluZVRlcm1pbmF0b3IocGF0dGVybikKK3sKKyAgICBy
ZTEgPSBuZXcgUmVnRXhwKHBhdHRlcm4pOworCisgICAgcmV0dXJuIC9cbnxccnxcdTIwMjh8XHUy
MDI5Ly50ZXN0KHJlMS50b1N0cmluZygpKTsKK30KKwogc2hvdWxkQmUoIlJlZ0V4cCgnLycpLnNv
dXJjZSIsICciXFxcXC8iJyk7CiBzaG91bGRCZSgiUmVnRXhwKCcnKS5zb3VyY2UiLCAnIiInKTsK
IHNob3VsZEJlKCJSZWdFeHAucHJvdG90eXBlLnNvdXJjZSIsICciIicpOwpAQCAtMzUsMyArNDIs
MTQgQEAgc2hvdWxkQmVUcnVlKCd0ZXN0Rm9yd2FyZFNsYXNoKCJ4XFwveC94IiwgInhcXC94XFwv
eCIpOycpOwogc2hvdWxkQmVUcnVlKCd0ZXN0Rm9yd2FyZFNsYXNoKCJ4L3hcXC94IiwgInhcXC94
XFwveCIpOycpOwogc2hvdWxkQmVUcnVlKCd0ZXN0Rm9yd2FyZFNsYXNoKCJ4XFwveFxcL3giLCAi
eFxcL3hcXC94Iik7Jyk7CiAKK3Nob3VsZEJlRmFsc2UoJ3Rlc3RMaW5lVGVybWluYXRvcigiXFxu
Iik7Jyk7CitzaG91bGRCZUZhbHNlKCd0ZXN0TGluZVRlcm1pbmF0b3IoIlxcXFxuIik7Jyk7Citz
aG91bGRCZUZhbHNlKCd0ZXN0TGluZVRlcm1pbmF0b3IoIlxcciIpOycpOworc2hvdWxkQmVGYWxz
ZSgndGVzdExpbmVUZXJtaW5hdG9yKCJcXFxcciIpOycpOworc2hvdWxkQmVGYWxzZSgndGVzdExp
bmVUZXJtaW5hdG9yKCJcXHUyMDI4Iik7Jyk7CitzaG91bGRCZUZhbHNlKCd0ZXN0TGluZVRlcm1p
bmF0b3IoIlxcXFx1MjAyOCIpOycpOworc2hvdWxkQmVGYWxzZSgndGVzdExpbmVUZXJtaW5hdG9y
KCJcXHUyMDI5Iik7Jyk7CitzaG91bGRCZUZhbHNlKCd0ZXN0TGluZVRlcm1pbmF0b3IoIlxcXFx1
MjAyOSIpOycpOworCitzaG91bGRCZSgiUmVnRXhwKCdbL10nKS5zb3VyY2UiLCAiJ1svXSciKTsK
K3Nob3VsZEJlKCJSZWdFeHAoJ1xcXFxbL10nKS5zb3VyY2UiLCAiJ1xcXFxbXFxcXC9dJyIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdleC90b1N0cmluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3RvU3RyaW5nLWV4cGVjdGVkLnR4dAppbmRleCBmOWFm
ODk3Yzk2NTQ3NzYwYjVjMWU4MmUzZjA1MTgzMTBjMDc1NTVjLi4wNjg0NGFiYWQxZWQ4YzJlMzA4
MTk2Y2Q2MjE3Mzg3ODhhZTQ1NGJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2V4
L3RvU3RyaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3RvU3Ry
aW5nLWV4cGVjdGVkLnR4dApAQCAtMjAsNiArMjAsMTYgQEAgUEFTUyB0ZXN0Rm9yd2FyZFNsYXNo
KCJ4L3gveCIsICJ4XC94XC94Iik7IGlzIHRydWUKIFBBU1MgdGVzdEZvcndhcmRTbGFzaCgieFwv
eC94IiwgInhcL3hcL3giKTsgaXMgdHJ1ZQogUEFTUyB0ZXN0Rm9yd2FyZFNsYXNoKCJ4L3hcL3gi
LCAieFwveFwveCIpOyBpcyB0cnVlCiBQQVNTIHRlc3RGb3J3YXJkU2xhc2goInhcL3hcL3giLCAi
eFwveFwveCIpOyBpcyB0cnVlCitQQVNTIHRlc3RMaW5lVGVybWluYXRvcigiXG4iKTsgaXMgZmFs
c2UKK1BBU1MgdGVzdExpbmVUZXJtaW5hdG9yKCJcXG4iKTsgaXMgZmFsc2UKK1BBU1MgdGVzdExp
bmVUZXJtaW5hdG9yKCJcciIpOyBpcyBmYWxzZQorUEFTUyB0ZXN0TGluZVRlcm1pbmF0b3IoIlxc
ciIpOyBpcyBmYWxzZQorUEFTUyB0ZXN0TGluZVRlcm1pbmF0b3IoIlx1MjAyOCIpOyBpcyBmYWxz
ZQorUEFTUyB0ZXN0TGluZVRlcm1pbmF0b3IoIlxcdTIwMjgiKTsgaXMgZmFsc2UKK1BBU1MgdGVz
dExpbmVUZXJtaW5hdG9yKCJcdTIwMjkiKTsgaXMgZmFsc2UKK1BBU1MgdGVzdExpbmVUZXJtaW5h
dG9yKCJcXHUyMDI5Iik7IGlzIGZhbHNlCitQQVNTIFJlZ0V4cCgnWy9dJykuc291cmNlIGlzICdb
L10nCitQQVNTIFJlZ0V4cCgnXFxbL10nKS5zb3VyY2UgaXMgJ1xcW1xcL10nCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
</data>

          </attachment>
      

    </bug>

</bugzilla>