<?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>127018</bug_id>
          
          <creation_ts>2014-01-14 16:30:24 -0800</creation_ts>
          <short_desc>FTL should be cool with runtime functions throwing exceptions</short_desc>
          <delta_ts>2014-01-15 14:11:26 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>113622</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>968089</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-14 16:30:24 -0800</bug_when>
    <thetext>This requires an exception throw off-ramp from the FTL.  It&apos;s pretty easy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968090</commentid>
    <comment_count>1</comment_count>
      <attachid>221213</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-14 16:32:30 -0800</bug_when>
    <thetext>Created attachment 221213
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968103</commentid>
    <comment_count>2</comment_count>
      <attachid>221213</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-14 17:19:12 -0800</bug_when>
    <thetext>Comment on attachment 221213
the patch

r=me

Would be nice to have a test case for the rare case where an FTL function does not handle any exceptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968137</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-14 18:24:49 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 221213 [details])
&gt; r=me
&gt; 
&gt; Would be nice to have a test case for the rare case where an FTL function does not handle any exceptions.

This gives me the excuse to write this test:

function foo() { }

noInline(foo);

for (var i = 0; i &lt; 100000; ++i) {
    var result = foo();
    if (result !== void 0)
        throw &quot;You broke JSC so hard that even the empty function doesn&apos;t work: &quot; + result;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968149</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-14 19:16:43 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/162035</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968464</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-15 14:11:26 -0800</bug_when>
    <thetext>Nice!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221213</attachid>
            <date>2014-01-14 16:32:30 -0800</date>
            <delta_ts>2014-01-14 17:19:12 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>11384</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyMDI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDE0LTAxLTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIHNob3VsZCBiZSBjb29sIHdpdGggcnVudGltZSBmdW5jdGlvbnMgdGhyb3dpbmcgZXhjZXB0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3
MDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAg
ICAgICBUaGlzIGp1c3QgYWRkcyB0aGUgYXBwcm9wcmlhdGUgZXhjZXB0aW9uIHRocm93aW5nIG9m
Zi1yYW1wIHRvIHRoZSBGVEwuIFRoZXJlJ3Mgbm8KKyAgICAgICAgd2F5IHRvIGV4cHJlc3MgdGhh
dCBvZmYtcmFtcCBpbiBMTFZNIElSLCBzbyB3ZSBqdXN0IHVzZSBhIHN0YWNrbWFwIHRoYXQgd2Ug
ZmlsbAorICAgICAgICB3aXRoIGEganVtcCB0byBvdXIgb3duIG9mZi1yYW1wLiBJdCdzIGVhc3kh
CisgICAgICAgIAorICAgICAgICBUaGUgdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZSB0ZXN0
IGFscmVhZHkgd29ya2VkIGJlY2F1c2UgdGhlIGFyY2hpdGVjdHVyZSBvZgorICAgICAgICB0aGUg
RlRMIGFsbG93cyBvdXIgZXhpc3RpbmcgdW53aW5kaW5nIHRvICJqdXN0IHdvcmsiLiBUaGUgb3Ro
ZXIgdGVzdCB1c2VkIHRvIGNyYXNoCisgICAgICAgIGJ1dCBub3cgd29ya3MuCisgICAgICAgIAor
ICAgICAgICAqIGFzc2VtYmxlci9MaW5rQnVmZmVyLmg6CisgICAgICAgIChKU0M6OkxpbmtCdWZm
ZXI6OmVudHJ5cG9pbnQpOgorICAgICAgICAqIGZ0bC9GVExDb21waWxlLmNwcDoKKyAgICAgICAg
KEpTQzo6RlRMOjpmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMpOgorICAgICAgICAqIGZ0bC9G
VExKSVRGaW5hbGl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpJVEZpbmFsaXplcjo6Zmlu
YWxpemVGdW5jdGlvbik6CisgICAgICAgICogZnRsL0ZUTEpJVEZpbmFsaXplci5oOgorICAgICAg
ICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06Omxvd2VyKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y2Fs
bENoZWNrKToKKyAgICAgICAgKiBmdGwvRlRMU3RhdGUuaDoKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvcnVudGltZS10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy90aHJvdy10
aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAg
IChiYXIpOgorCiAyMDE0LTAxLTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXggNjQtYml0IEMgTG9vcCBMTElOVCBmb3IgIUVOQUJMRShDT01QVVRFRF9HT1RP
X09QQ09ERVMpLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVm
ZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5r
QnVmZmVyLmgJKHJldmlzaW9uIDE2MTk5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTGlua0J1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQsNiArMTY0LDExIEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSB1c2VkIHRvIG9idGFpbiBo
YW5kbGVzIHRvIGFsbG93IHRoZSBjb2RlIHRvIGJlIHJlbGlua2VkIC8gcmVwYXRjaGVkIGxhdGVy
LgorICAgIAorICAgIENvZGVMb2NhdGlvbkxhYmVsIGVudHJ5cG9pbnQoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIENvZGVMb2NhdGlvbkxhYmVsKGNvZGUoKSk7CisgICAgfQogCiAgICAgQ29kZUxv
Y2F0aW9uQ2FsbCBsb2NhdGlvbk9mKENhbGwgY2FsbCkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJldmlzaW9uIDE2MTk5MykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3
MCw2ICsxNzAsMzEgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAog
ICAgIAogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHVwZGF0ZSBhbGwgbWFjaGluZSB2aXJ0dWFsIHJl
Z2lzdGVycyBpbiBydW50aW1lIG1ldGEtZGF0YS4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NzI1CisgICAgCisgICAgaXRlciA9IHJlY29yZE1hcC5m
aW5kKHN0YXRlLmhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQpOworICAgIC8vIEl0J3Mgc29ydCBv
ZiByZW1vdGVseSBwb3NzaWJsZSB0aGF0IHdlIHdvbid0IGhhdmUgYW4gZXhjZXB0aW9uIGhhbmRs
aW5nIHBhdGgsIGZvcgorICAgIC8vIHNvbWUga2luZHMgb2YgZnVuY3Rpb25zLiBUaGF0J3Mgbm90
IGFuIG9wdGltaXphdGlvbiBwZXIgc2U7IGl0IGp1c3QgZmVsbCBvdXQgdGhhdAorICAgIC8vIHdh
eS4KKyAgICBpZiAoaXRlciAhPSByZWNvcmRNYXAuZW5kKCkpIHsKKyAgICAgICAgUkVMRUFTRV9B
U1NFUlQoIWl0ZXItPnZhbHVlLmxvY2F0aW9ucy5zaXplKCkpOworICAgICAgICAKKyAgICAgICAg
Q0NhbGxIZWxwZXJzIGNoZWNrSklUKCZ2bSwgY29kZUJsb2NrKTsKKyAgICAgICAgCisgICAgICAg
IC8vIEF0IHRoaXMgcG9pbnQgaXQncyBwZXJmZWN0bHkgZmFpciB0byBqdXN0IGJsb3cgYXdheSBh
bGwgc3RhdGUgYW5kIHJlc3RvcmUgdGhlCisgICAgICAgIC8vIEpTIEpJVCB2aWV3IG9mIHRoZSB1
bml2ZXJzZS4KKyAgICAgICAgY2hlY2tKSVQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTY0KFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOworICAg
ICAgICBjaGVja0pJVC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQoVGFnTWFzayks
IEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CisgICAgICAgIAorICAgICAgICBjaGVja0pJVC5t
b3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gY2hlY2tKSVQuY2FsbCgpOworICAg
ICAgICBjaGVja0pJVC5qdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7CisgICAgICAgIAorICAgICAg
ICBPd25QdHI8TGlua0J1ZmZlcj4gbGlua0J1ZmZlciA9IGFkb3B0UHRyKG5ldyBMaW5rQnVmZmVy
KAorICAgICAgICAgICAgdm0sICZjaGVja0pJVCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11
c3RTdWNjZWVkKSk7CisgICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbCwgRnVuY3Rpb25QdHIo
bG9va3VwRXhjZXB0aW9uSGFuZGxlcikpOworICAgICAgICAKKyAgICAgICAgc3RhdGUuZmluYWxp
emVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlciA9IGxpbmtCdWZmZXIucmVsZWFzZSgpOwor
ICAgIH0KIAogICAgIEV4aXRUaHVua0dlbmVyYXRvciBleGl0VGh1bmtHZW5lcmF0b3Ioc3RhdGUp
OwogICAgIGV4aXRUaHVua0dlbmVyYXRvci5lbWl0VGh1bmtzKCk7CkBAIC0zNDUsNiArMzcwLDE4
IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAKICAgICBS
ZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIoY29kZUJsb2NrKTsKICAgICAKKyAgICBpZiAoc3Rh
dGUuZmluYWxpemVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlcikgeworICAgICAgICBpdGVy
ID0gcmVjb3JkTWFwLmZpbmQoc3RhdGUuaGFuZGxlRXhjZXB0aW9uU3RhY2ttYXBJRCk7CisgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKGl0ZXIgIT0gcmVjb3JkTWFwLmVuZCgpKTsKKyAgICAgICAgCisg
ICAgICAgIFN0YWNrTWFwczo6UmVjb3JkJiByZWNvcmQgPSBpdGVyLT52YWx1ZTsKKyAgICAgICAg
CisgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHNvdXJjZSA9IENvZGVMb2NhdGlvbkxhYmVsKAor
ICAgICAgICAgICAgYml0d2lzZV9jYXN0PGNoYXIqPihnZW5lcmF0ZWRGdW5jdGlvbikgKyByZWNv
cmQuaW5zdHJ1Y3Rpb25PZmZzZXQpOworCisgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdp
dGhKdW1wKHNvdXJjZSwgc3RhdGUuZmluYWxpemVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZl
ci0+ZW50cnlwb2ludCgpKTsKKyAgICB9CisgICAgCiAgICAgZm9yICh1bnNpZ25lZCBleGl0SW5k
ZXggPSAwOyBleGl0SW5kZXggPCBqaXRDb2RlLT5vc3JFeGl0LnNpemUoKTsgKytleGl0SW5kZXgp
IHsKICAgICAgICAgT1NSRXhpdENvbXBpbGF0aW9uSW5mbyYgaW5mbyA9IHN0YXRlLmZpbmFsaXpl
ci0+b3NyRXhpdFtleGl0SW5kZXhdOwogICAgICAgICBPU1JFeGl0JiBleGl0ID0gaml0Q29kZS0+
b3NyRXhpdFtleGl0SW5kZXhdOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExK
SVRGaW5hbGl6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSklURmluYWxpemVyLmNwcAkocmV2aXNpb24gMTYxOTkzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNiAr
MTAwLDE0IEBAIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZUZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIC5leGVjdXRhYmxlTWVtb3J5KCkpOwogICAgIH0KICAgICAKKyAgICBpZiAoaGFuZGxlRXhj
ZXB0aW9uc0xpbmtCdWZmZXIpIHsKKyAgICAgICAgaml0Q29kZS0+YWRkSGFuZGxlKEZJTkFMSVpF
X0RGR19DT0RFKAorICAgICAgICAgICAgKmhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyLAorICAg
ICAgICAgICAgKCJGVEwgZXhjZXB0aW9uIGhhbmRsZXIgZm9yICVzIiwKKyAgICAgICAgICAgICAg
ICB0b0NTdHJpbmcoQ29kZUJsb2NrV2l0aEpJVFR5cGUobV9wbGFuLmNvZGVCbG9jay5nZXQoKSwg
SklUQ29kZTo6RlRMSklUKSkuZGF0YSgpKSkKKyAgICAgICAgICAgIC5leGVjdXRhYmxlTWVtb3J5
KCkpOworICAgIH0KKyAgICAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgd2l0aEFyaXR5Q2hl
Y2s7CiAgICAgaWYgKGFyaXR5Q2hlY2suaXNTZXQoKSkKICAgICAgICAgd2l0aEFyaXR5Q2hlY2sg
PSBlbnRyeXBvaW50TGlua0J1ZmZlci0+bG9jYXRpb25PZihhcml0eUNoZWNrKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaAkocmV2aXNpb24gMTYx
OTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgT3duUHRyPExpbmtCdWZm
ZXI+IGV4aXRUaHVua3NMaW5rQnVmZmVyOwogICAgIE93blB0cjxMaW5rQnVmZmVyPiBlbnRyeXBv
aW50TGlua0J1ZmZlcjsKICAgICBPd25QdHI8TGlua0J1ZmZlcj4gc2lkZUNvZGVMaW5rQnVmZmVy
OworICAgIE93blB0cjxMaW5rQnVmZmVyPiBoYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlcjsKICAg
ICBWZWN0b3I8U2xvd1BhdGhDYWxsPiBzbG93UGF0aENhbGxzOyAvLyBDYWxscyBpbnNpZGUgdGhl
IHNpZGUgY29kZS4KICAgICBWZWN0b3I8T1NSRXhpdENvbXBpbGF0aW9uSW5mbz4gb3NyRXhpdDsK
ICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgYXJpdHlDaGVjazsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxNjE5
OTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAg
ICAgIG1fcHJvbG9ndWUgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlByb2xvZ3VlIikpOwogICAg
ICAgICBMQmFzaWNCbG9jayBzdGFja092ZXJmbG93ID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJT
dGFjayBvdmVyZmxvdyIpKTsKKyAgICAgICAgbV9oYW5kbGVFeGNlcHRpb25zID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJIYW5kbGUgRXhjZXB0aW9ucyIpKTsKIAogICAgICAgICBmb3IgKEJsb2Nr
SW5kZXggYmxvY2tJbmRleCA9IDA7IGJsb2NrSW5kZXggPCBtX2dyYXBoLm51bUJsb2NrcygpOyAr
K2Jsb2NrSW5kZXgpIHsKICAgICAgICAgICAgIG1faGlnaEJsb2NrID0gbV9ncmFwaC5ibG9jayhi
bG9ja0luZGV4KTsKQEAgLTE0MiwxMCArMTQzLDE4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1f
b3V0LmJlbG93KG1fY2FsbEZyYW1lLCBtX291dC5sb2FkUHRyKG1fb3V0LmFic29sdXRlKCZzdGFj
a0xpbWl0KSkpLAogICAgICAgICAgICAgc3RhY2tPdmVyZmxvdywgbG93QmxvY2sobV9ncmFwaC5i
bG9jaygwKSkpOwogICAgICAgICAKLSAgICAgICAgbV9vdXQuYXBwZW5kVG8oc3RhY2tPdmVyZmxv
dywgbG93QmxvY2sobV9ncmFwaC5ibG9jaygwKSkpOwotICAgICAgICAvLyBGSVhNRTogSGFuZGxl
IGV4Y2VwdGlvbnMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2
MjIKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oc3RhY2tPdmVyZmxvdywgbV9oYW5kbGVFeGNlcHRp
b25zKTsKKyAgICAgICAgLy8gRklYTUU6IERvIGEgcmVhbCBzdGFjayBjaGVjayBhbmQgdGhyb3cg
dGhlIGV4Y2VwdGlvbiBhcHByb3ByaWF0ZWx5LgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NjUwCiAgICAgICAgIG1fb3V0LmNyYXNoKCk7CiAg
ICAgICAgIAorICAgICAgICBtX291dC5hcHBlbmRUbyhtX2hhbmRsZUV4Y2VwdGlvbnMsIGxvd0Js
b2NrKG1fZ3JhcGguYmxvY2soMCkpKTsKKyAgICAgICAgbV9mdGxTdGF0ZS5oYW5kbGVFeGNlcHRp
b25TdGFja21hcElEID0gbV9zdGFja21hcElEcysrOworICAgICAgICBtX291dC5jYWxsKAorICAg
ICAgICAgICAgbV9vdXQuc3RhY2ttYXBJbnRyaW5zaWMoKSwgbV9vdXQuY29uc3RJbnQ2NChtX2Z0
bFN0YXRlLmhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQpLAorICAgICAgICAgICAgbV9vdXQuY29u
c3RJbnQzMihNYWNyb0Fzc2VtYmxlcjo6bWF4SnVtcFJlcGxhY2VtZW50U2l6ZSgpKSk7CisgICAg
ICAgIG1fb3V0LnVucmVhY2hhYmxlKCk7CisgICAgICAgIAogICAgICAgICBWZWN0b3I8QmFzaWNC
bG9jayo+IGRlcHRoRmlyc3Q7CiAgICAgICAgIG1fZ3JhcGguZ2V0QmxvY2tzSW5EZXB0aEZpcnN0
T3JkZXIoZGVwdGhGaXJzdCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZXB0
aEZpcnN0LnNpemUoKTsgKytpKQpAQCAtNDE1NCwxOCArNDE2MywxMyBAQCBwcml2YXRlOgogICAg
ICAgICBpZiAobW9kZSA9PSBOb0V4Y2VwdGlvbnMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIAotICAgICAgICBMQmFzaWNCbG9jayBkaWRIYXZlRXhjZXB0aW9uID0gRlRMX05FV19CTE9D
SyhtX291dCwgKCJEaWQgaGF2ZSBleGNlcHRpb24iKSk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNv
bnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiRXhjZXB0aW9uIGNoZWNrIGNvbnRp
bnVhdGlvbiIpKTsKICAgICAgICAgCiAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAg
IG1fb3V0Lm5vdFplcm82NChtX291dC5sb2FkNjQobV9vdXQuYWJzb2x1dGUodm0oKS5hZGRyZXNz
T2ZFeGNlcHRpb24oKSkpKSwKLSAgICAgICAgICAgIGRpZEhhdmVFeGNlcHRpb24sIGNvbnRpbnVh
dGlvbik7CisgICAgICAgICAgICBtX2hhbmRsZUV4Y2VwdGlvbnMsIGNvbnRpbnVhdGlvbik7CiAg
ICAgICAgIAotICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGRp
ZEhhdmVFeGNlcHRpb24sIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgIC8vIEZJWE1FOiBIYW5kbGUg
ZXhjZXB0aW9ucy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYy
MgotICAgICAgICBtX291dC5jcmFzaCgpOwotICAgICAgICAKLSAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRp
bnVhdGlvbik7CiAgICAgfQogICAgIAogICAgIExCYXNpY0Jsb2NrIGxvd0Jsb2NrKEJhc2ljQmxv
Y2sqIGJsb2NrKQpAQCAtNDU1OSw2ICs0NTYzLDcgQEAgcHJpdmF0ZToKICAgICBPdXRwdXQgbV9v
dXQ7CiAgICAgCiAgICAgTEJhc2ljQmxvY2sgbV9wcm9sb2d1ZTsKKyAgICBMQmFzaWNCbG9jayBt
X2hhbmRsZUV4Y2VwdGlvbnM7CiAgICAgSGFzaE1hcDxCYXNpY0Jsb2NrKiwgTEJhc2ljQmxvY2s+
IG1fYmxvY2tzOwogICAgIAogICAgIExWYWx1ZSBtX2NhbGxGcmFtZTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFN0YXRlLmgJKHJldmlzaW9uIDE2MTk5MykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsNyBA
QCBwdWJsaWM6CiAgICAgUmVmUHRyPEpJVENvZGU+IGppdENvZGU7CiAgICAgR2VuZXJhdGVkRnVu
Y3Rpb24gZ2VuZXJhdGVkRnVuY3Rpb247CiAgICAgSklURmluYWxpemVyKiBmaW5hbGl6ZXI7Cisg
ICAgdW5zaWduZWQgaGFuZGxlRXhjZXB0aW9uU3RhY2ttYXBJRDsKICAgICB1bnNpZ25lZCBjYXB0
dXJlZFN0YWNrbWFwSUQ7CiAgICAgU2VnbWVudGVkVmVjdG9yPEdldEJ5SWREZXNjcmlwdG9yPiBn
ZXRCeUlkczsKICAgICBTZWdtZW50ZWRWZWN0b3I8UHV0QnlJZERlc2NyaXB0b3I+IHB1dEJ5SWRz
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9ydW50aW1lLXRocm93
LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9ydW50aW1lLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3J1
bnRpbWUtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDMzIEBACitmdW5jdGlvbiBmb28oYSwgcykgeworICAgIHJldHVybiBhW3NdICsgMTsK
K30KKwordmFyIHNob3VsZFRocm93ID0gZmFsc2U7CitmdW5jdGlvbiBiYXIoKSB7CisgICAgaWYg
KHNob3VsZFRocm93KQorICAgICAgICB0aHJvdyAiaGVsbG8iOworICAgIHJldHVybiA0MjsKK30K
KwordmFyIGEgPSB7fTsKK2EuX19kZWZpbmVHZXR0ZXJfXygiYmFyIiwgYmFyKTsKKworbm9Jbmxp
bmUoZm9vKTsKK25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyAr
K2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGEsICJiYXIiKTsKKyAgICBpZiAocmVzdWx0ICE9
IDQzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisK
K3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgc2hvdWxkVGhyb3cgPSB0cnVlOworICAgIGZvbyhh
LCAiYmFyIik7Cit9IGNhdGNoIChlKSB7CisgICAgZGlkVGhyb3cgPSBlOworfQorCitpZiAoZGlk
VGhyb3cgIT0gImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBvciB0aHJl
dyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rocm93LXRocm91Z2gt
b3B0aW1pemVkLWNvZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3Rocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwzMCBAQAorZnVuY3Rpb24gZm9vKGYpIHsKKyAgICByZXR1cm4gZigxKSAr
IDE7Cit9CisKK3ZhciBzaG91bGRUaHJvdyA9IGZhbHNlOworZnVuY3Rpb24gYmFyKHgpIHsKKyAg
ICBpZiAoc2hvdWxkVGhyb3cpCisgICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgcmV0dXJuIDQy
IC0geDsKK30KKworbm9JbmxpbmUoZm9vKTsKK25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGJhcik7CisgICAg
aWYgKHJlc3VsdCAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OworfQorCit2YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIHNob3VsZFRocm93ID0gdHJ1
ZTsKKyAgICBmb28oYmFyKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisK
K2lmIChkaWRUaHJvdyAhPSAiaGVsbG8iKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93
IG9yIHRocmV3IHdyb25nIGV4Y2VwdGlvbjogIiArIGRpZFRocm93Owo=
</data>
<flag name="review"
          id="245078"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>