<?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>134056</bug_id>
          
          <creation_ts>2014-06-18 22:00:51 -0700</creation_ts>
          <short_desc>[ftlopt] LICM should be able to hoist CheckStructure even if the loop clobbers structures so long as the structures being checked are watchable</short_desc>
          <delta_ts>2014-06-19 13:44:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>133229</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>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1016631</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-06-18 22:00:51 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016632</commentid>
    <comment_count>1</comment_count>
      <attachid>233349</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-06-18 22:24:10 -0700</bug_when>
    <thetext>Created attachment 233349
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016741</commentid>
    <comment_count>2</comment_count>
      <attachid>233349</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-06-19 13:30:42 -0700</bug_when>
    <thetext>Comment on attachment 233349
the patch

This is totally wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016749</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-06-19 13:44:09 -0700</bug_when>
    <thetext>It&apos;s not right to hoist a CheckStructure just because the structure is watchable.  Consider a loop like:

var o = ...; // when assigned here, o does not have a field f.
for (;;) {
    if (p1)
        o.f = 42; // adds a field f
    if (p2) // p2 becomes true only after p1 had become true
        ... = o.f; // say that after adding a field f to o, we won&apos;t add any more things to o, so the CheckStructure here will be on a watchable structure set.
}

If we hoist the CheckStructure then the CheckStructure will be sure to fail.  Therefore, the rules on the hoistability of CheckStructures need to be substantially more subtle.  In the example above, at a minimum we need to have some profiling of the type that o has at the loop pre-header to make sure that hoisting the CheckStructure to that location won&apos;t be guaranteed to fail.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233349</attachid>
            <date>2014-06-18 22:24:10 -0700</date>
            <delta_ts>2014-06-19 13:30:41 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>10694</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcwMTQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDE0LTA2LTE4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQwNTYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3Ry
YWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAg
ICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXpl
KToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVj
dHVyZTo6ZHVtcCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6ZHVtcEJyaWVmKToKKwogMjAx
NC0wNi0xOCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBB
SSBhbmQgY29uc3RhbnQgZm9sZGVyIHNob3VsZCBiZSBhYmxlIHRvIHByZWNpc2VseSBwcnVuZSBN
dWx0aUdldEJ5T2Zmc2V0L011bHRpUHV0QnlPZmZzZXQgZXZlbiBpZiB0aGUgYmFzZSBzdHJ1Y3R1
cmUgYWJzdHJhY3QgdmFsdWUgaXMgbm90IGEgc2luZ2xldG9uCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oCShyZXZpc2lvbiAxNzAxNDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MjQsNiArMTQy
NCwxNSBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgfQog
CiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZTogeworICAgICAgICAvLyBUaGlzIGlzIGFuIGFzc3Vt
cHRpb24gbWFkZSBieSBERkc6OmNsb2JiZXJpemUoKS4gSWYgd2UgbmVlZGVkIHRvIHZpb2xhdGUg
dGhpcworICAgICAgICAvLyBhc3N1bXB0aW9uLCB3ZSdkIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUg
dGhhdCBERkc6OmNsb2JiZXJpemUoKSBvbmx5IGNsYWltZWQgdGhhdCBhCisgICAgICAgIC8vIENo
ZWNrU3RydWN0dXJlIHdhcyBwdXJlIGlmIGl0IHdhcyBleGVjdXRlZCB3aGlsZSB0aGUgY2xvYmJl
ciBzdGF0ZSB3YXMKKyAgICAgICAgLy8gU3RydWN0dXJlc0FyZVdhdGNoZWQuIFdlIHdvdWxkIGRv
IHRoaXMgYnkgaGF2aW5nIGEgIkhvaXN0YWJsZUNoZWNrU3RydWN0dXJlIiBhbmQgaGF2ZQorICAg
ICAgICAvLyBBSSBjaGFuZ2UgYSBDaGVja1N0cnVjdHVyZSB0byBhIEhvaXN0YWJsZUNoZWNrU3Ry
dWN0dXJlIGlmIGl0IGRldGVjdGVkIHRoZSBzZXQgdG8gYmUgYWxsCisgICAgICAgIC8vIHdhdGNo
YWJsZSBhbmQgdGhlIENoZWNrU3RydWN0dXJlIHdhcyBleGVjdXRlZCBkdXJpbmcgU3RydWN0dXJl
c0FyZVdhdGNoZWQuIFRoYXQncyBwcmV0dHkKKyAgICAgICAgLy8gY29tcGxpY2F0ZWQgYW5kIHBy
b2JhYmx5IG5vdCBuZWNlc3NhcnkgcmlnaHQgbm93LgorICAgICAgICBSRUxFQVNFX0FTU0VSVCht
X3N0YXRlLnN0cnVjdHVyZUNsb2JiZXJTdGF0ZSgpID09IFN0cnVjdHVyZXNBcmVXYXRjaGVkKTsK
KyAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBwcm9wYWdh
dGUgdGhlIHN0cnVjdHVyZSBzZXRzIG9mIGNvbnN0YW50cyAoaS5lLiBwcm90b3R5cGVzKS4KICAg
ICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgQVNTRVJUKCEodmFsdWUubV90eXBlICYgflNwZWNDZWxsKSk7IC8vIEVkZ2UgZmlsdGVy
aW5nIHNob3VsZCBoYXZlIGFscmVhZHkgZW5zdXJlZCB0aGlzLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHJldmlzaW9uIDE3MDE0MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MTgsNyArNDE4LDIzIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAgICAgCi0gICAgY2FzZSBDaGVja1N0cnVjdHVy
ZToKKyAgICBjYXNlIENoZWNrU3RydWN0dXJlOiB7CisgICAgICAgIC8vIEZyb20gYSB2ZXJ5IG1l
Y2hhbmljYWwgc3RhbmRwb2ludCwgaXQncyBvZiBjb3Vyc2UgdHJ1ZSB0aGF0IENoZWNrU3RydWN0
dXJlIGFsd2F5cyByZWFkcworICAgICAgICAvLyBKU0NlbGxfc3RydWN0dXJlSUQuIEJ1dCBjbG9i
YmVyaXplKCkgaXMgb25seSBjb25jZXJuZWQgd2l0aCByZWFkcyB0aGF0IGZyb20gbXV0YWJsZQor
ICAgICAgICAvLyBzdGF0ZS4gSGVuY2UsIGlmIHdlIGtub3cgdGhhdCB0aGUgQ2hlY2tTdHJ1Y3R1
cmUgcHJvdmVzIHRoYXQgdGhlIHRoaW5nIGl0IHJlYWQgY2Fubm90CisgICAgICAgIC8vIGNoYW5n
ZSBzdWJzZXF1ZW50bHksIHRoZW4gaXQgaXMgImFzIGlmIiBpdCBkaWRuJ3QgInJlYWQiIGFueXRo
aW5nLCB1bmRlciB0aGUgY2xvYmJlcml6ZQorICAgICAgICAvLyBkZWZpbml0aW9uIG9mICJyZWFk
aW5nIi4gTm90ZSB0aGF0IHRoaXMgYXNzdW1lcyB0aGF0IENoZWNrU3RydWN0dXJlIGlzIG5ldmVy
IGV4ZWN1dGVkCisgICAgICAgIC8vIGJldHdlZW4gYSBzaWRlIGVmZmVjdCBhbmQgYW4gSW52YWxp
ZGF0aW9uUG9pbnQuIEFJIGFzc2VydHMgYXMgbXVjaC4KKyAgICAgICAgY29uc3QgU3RydWN0dXJl
U2V0JiBzZXQgPSBub2RlLT5zdHJ1Y3R1cmVTZXQoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gc2V0LnNpemUoKTsgaS0tOykgeworICAgICAgICAgICAgaWYgKCFzZXRbaV0tPmRmZ1Nob3Vs
ZFdhdGNoKCkpIHsKKyAgICAgICAgICAgICAgICByZWFkKEpTQ2VsbF9zdHJ1Y3R1cmVJRCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgICAgIAogICAgIGNhc2UgSW5zdGFuY2VPZjoKICAgICAgICAg
cmVhZChKU0NlbGxfc3RydWN0dXJlSUQpOwogICAgICAgICByZXR1cm47CkBAIC00NjUsNiArNDgx
LDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZQogICAgICAgICB3
cml0ZShKU0NlbGxfc3RydWN0dXJlSUQpOwogICAgICAgICB3cml0ZShKU0NlbGxfaW5kZXhpbmdU
eXBlKTsKICAgICAgICAgd3JpdGUoSlNPYmplY3RfYnV0dGVyZmx5KTsKKyAgICAgICAgd3JpdGUo
V2F0Y2hwb2ludF9maXJlKTsKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIEdl
dEluZGV4ZWRQcm9wZXJ0eVN0b3JhZ2U6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5jcHAJKHJldmlzaW9uIDE3MDE0MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTEwNTQsNyArMTA1NCwxMCBAQCBib29sIFN0cnVjdHVyZTo6cHJvdG90eXBl
Q2hhaW5NYXlJbnRlcmNlCiAKIHZvaWQgU3RydWN0dXJlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0CiB7Ci0gICAgb3V0LnByaW50KFJhd1BvaW50ZXIodGhpcyksICI6WyIsIGNsYXNzSW5m
bygpLT5jbGFzc05hbWUsICIsIHsiKTsKKyAgICBvdXQucHJpbnQoUmF3UG9pbnRlcih0aGlzKSwg
IjpbIiwgY2xhc3NJbmZvKCktPmNsYXNzTmFtZSk7CisgICAgaWYgKGRmZ1Nob3VsZFdhdGNoKCkp
CisgICAgICAgIG91dC5wcmludCgiLCBXYXRjaGFibGUiKTsKKyAgICBvdXQucHJpbnQoIiwgeyIp
OwogICAgIAogICAgIFZlY3RvcjxTdHJ1Y3R1cmUqLCA4PiBzdHJ1Y3R1cmVzOwogICAgIFN0cnVj
dHVyZSogc3RydWN0dXJlOwpAQCAtMTEwOCw3ICsxMTExLDEwIEBAIHZvaWQgU3RydWN0dXJlOjpk
dW1wSW5Db250ZXh0KFByaW50U3RyZWEKIAogdm9pZCBTdHJ1Y3R1cmU6OmR1bXBCcmllZihQcmlu
dFN0cmVhbSYgb3V0LCBjb25zdCBDU3RyaW5nJiBzdHJpbmcpIGNvbnN0CiB7Ci0gICAgb3V0LnBy
aW50KCIlIiwgc3RyaW5nLCAiOiIsIGNsYXNzSW5mbygpLT5jbGFzc05hbWUpOworICAgIG91dC5w
cmludCgiJSIsIHN0cmluZyk7CisgICAgaWYgKGRmZ1Nob3VsZFdhdGNoKCkpCisgICAgICAgIG91
dC5wcmludCgiL1ciKTsKKyAgICBvdXQucHJpbnQoIjoiLCBjbGFzc0luZm8oKS0+Y2xhc3NOYW1l
KTsKIH0KIAogdm9pZCBTdHJ1Y3R1cmU6OmR1bXBDb250ZXh0SGVhZGVyKFByaW50U3RyZWFtJiBv
dXQpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzAxNDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxNC0wNi0xOCAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFtmdGxvcHRdIExJQ00gc2hvdWxkIGJlIGFi
bGUgdG8gaG9pc3QgQ2hlY2tTdHJ1Y3R1cmUgZXZlbiBpZiB0aGUgbG9vcCBjbG9iYmVycyBzdHJ1
Y3R1cmVzIHNvIGxvbmcgYXMgdGhlIHN0cnVjdHVyZXMgYmVpbmcgY2hlY2tlZCBhcmUgd2F0Y2hh
YmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQw
NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpz
L3JlZ3Jlc3MvaG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0ZnVsLWxvb3AtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2hvaXN0LXBvbHktY2hlY2stc3Ry
dWN0dXJlLWVmZmVjdGZ1bC1sb29wLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
aG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBqcy9yZWdyZXNzL2hvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2hvaXN0LXBvbHktY2hlY2stc3RydWN0dXJl
LWVmZmVjdGZ1bC1sb29wLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9ob2lzdC1wb2x5LWNoZWNrLXN0
cnVjdHVyZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAodGVzdCk6CisKIDIw
MTQtMDYtMTggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcg
QUkgYW5kIGNvbnN0YW50IGZvbGRlciBzaG91bGQgYmUgYWJsZSB0byBwcmVjaXNlbHkgcHJ1bmUg
TXVsdGlHZXRCeU9mZnNldC9NdWx0aVB1dEJ5T2Zmc2V0IGV2ZW4gaWYgdGhlIGJhc2Ugc3RydWN0
dXJlIGFic3RyYWN0IHZhbHVlIGlzIG5vdCBhIHNpbmdsZXRvbgpJbmRleDogTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9ob2lzdC1wb2x5LWNoZWNrLXN0cnVjdHVyZS1lZmZlY3RmdWwtbG9vcC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9ob2lzdC1wb2x5
LWNoZWNrLXN0cnVjdHVyZS1lZmZlY3RmdWwtbG9vcC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2hvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLWVm
ZmVjdGZ1bC1sb29wLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBA
CitKU1JlZ3Jlc3MvaG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0ZnVsLWxvb3AKKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0
ZnVsLWxvb3AuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2hvaXN0
LXBvbHktY2hlY2stc3RydWN0dXJlLWVmZmVjdGZ1bC1sb29wLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2hvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLWVmZmVj
dGZ1bC1sb29wLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaG9pc3QtcG9seS1jaGVjay1z
dHJ1Y3R1cmUtZWZmZWN0ZnVsLWxvb3AuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9ob2lzdC1wb2x5LWNoZWNrLXN0cnVjdHVyZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9ob2lzdC1w
b2x5LWNoZWNrLXN0cnVjdHVyZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2hvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvaG9pc3QtcG9seS1jaGVj
ay1zdHJ1Y3R1cmUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhj
ZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaG9pc3QtcG9seS1jaGVjay1z
dHJ1Y3R1cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2hvaXN0
LXBvbHktY2hlY2stc3RydWN0dXJlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2hvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvaG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvaG9p
c3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0ZnVsLWxvb3AuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvaG9pc3QtcG9seS1jaGVjay1zdHJ1
Y3R1cmUtZWZmZWN0ZnVsLWxvb3AuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9ob2lzdC1wb2x5LWNoZWNrLXN0cnVjdHVyZS1lZmZlY3RmdWwt
bG9vcC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACitmdW5jdGlvbiBmb28obywg
cCkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyAr
K2kpIHsKKyAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgcC5nID0gNDI7CisgICAgfQor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qo
bykgeworICAgIGlmIChmb28obywge30pICE9IDEwMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdCk7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMTAwOyArK2kpIHsKKyAgICB0ZXN0KHtmOjEsIGc6Mn0pOworICAgIHRlc3Qoe2Y6MSwgaDoy
fSk7CisgICAgdGVzdCh7ZjoxLCBpOjJ9KTsKKyAgICB0ZXN0KHtmOjEsIGo6Mn0pOworICAgIHRl
c3Qoe2Y6MSwgazoyfSk7CisgICAgdGVzdCh7ZjoxLCBsOjJ9KTsKK30KKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHRlc3Qoe2Y6MSwgZzoyfSk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9ob2lzdC1wb2x5LWNoZWNrLXN0cnVjdHVyZS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9ob2lz
dC1wb2x5LWNoZWNrLXN0cnVjdHVyZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2hvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdmFyIHJl
c3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAgcmVz
dWx0ICs9IG8uZjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitub0lubGluZShmb28pOworCitm
dW5jdGlvbiB0ZXN0KG8pIHsKKyAgICBpZiAoZm9vKG8pICE9IDEwMCkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdCk7Cit9CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICB0ZXN0KHtmOjF9KTsKKyAgICB0ZXN0KHtmOjEs
IGc6Mn0pOworICAgIHRlc3Qoe2Y6MSwgZzoyLCBoOjN9KTsKKyAgICB0ZXN0KHtmOjEsIGc6Miwg
aDozLCBpOjR9KTsKKyAgICB0ZXN0KHtmOjEsIGc6MiwgaDozLCBpOjQsIGo6NX0pOworICAgIHRl
c3Qoe2Y6MSwgZzoyLCBoOjMsIGk6NCwgajo1LCBrOjZ9KTsKK30KKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKQorICAgIHRlc3Qoe2Y6MX0pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>