<?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>141107</bug_id>
          
          <creation_ts>2015-01-30 19:03:50 -0800</creation_ts>
          <short_desc>Converting Flushes and PhantomLocals to Phantoms requires an OSR availability analysis rather than just using the SetLocal&apos;s child</short_desc>
          <delta_ts>2015-02-02 10:16:06 -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>140660</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>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1065752</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-01-30 19:03:50 -0800</bug_when>
    <thetext>Consider that you have code like:

a: ...
b: MovHint(@a)
c: ValueRep(@a)
d: SetLocal(@c)
...
e: Flush(@d)

If the code between @d and @e doesn&apos;t observe the flushed value, we current convert this to:

a: ...
b: MovHint(@a)
c: ValueRep(@a)
d: SetLocal(@c)
...
e: Phantom(@c)

That&apos;s wrong, because @c is not MovHinted to anything. This causes @a to die and if we exit, we won&apos;t have a value for this local.

Our IR supports the notion that two logically equivalent but not identical values may be used for the MovHint and SetLocal.  Phantoms should use the values that MovHints used.  So, when strength-reducing a Flush or PhantomLocal to a Phantom we need to put the Phantom on the value that would have gotten MovHinted into that local.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065753</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-01-30 19:04:24 -0800</bug_when>
    <thetext>This issue was revealed by the new inlining opportunities introduced by https://bugs.webkit.org/show_bug.cgi?id=140660.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065757</commentid>
    <comment_count>2</comment_count>
      <attachid>245765</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-01-30 19:08:06 -0800</bug_when>
    <thetext>Created attachment 245765
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066125</commentid>
    <comment_count>3</comment_count>
      <attachid>245765</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-02-02 09:41:25 -0800</bug_when>
    <thetext>Comment on attachment 245765
the patch

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

r=me

&gt; Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:267
&gt; +                // be keeping the last MovHinted value of that local alive.

Would it be better to say &quot;keep&quot; instead of &quot;be keeping&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066128</commentid>
    <comment_count>4</comment_count>
      <attachid>245765</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-02 09:56:40 -0800</bug_when>
    <thetext>Comment on attachment 245765
the patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:267
&gt;&gt; +                // be keeping the last MovHinted value of that local alive.
&gt; 
&gt; Would it be better to say &quot;keep&quot; instead of &quot;be keeping&quot;?

Good point, will make that change!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066138</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-02 10:16:06 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/179477</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245765</attachid>
            <date>2015-01-30 19:08:06 -0800</date>
            <delta_ts>2015-02-02 09:41:25 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>9245</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5NDMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE1LTAxLTMwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q29udmVydGluZyBGbHVzaGVzIGFuZCBQaGFudG9tTG9jYWxzIHRvIFBoYW50b21zIHJlcXVpcmVz
IGFuIE9TUiBhdmFpbGFiaWxpdHkgYW5hbHlzaXMgcmF0aGVyIHRoYW4ganVzdCB1c2luZyB0aGUg
U2V0TG9jYWwncyBjaGlsZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQxMTA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICBTZWUgdGhlIGJ1Z3ppbGxhIGZvciBhIGRpc2N1c3Npb24gb2YgdGhl
IHByb2JsZW0uIFRoaXMgYWRkcmVzc2VzIHRoZSBwcm9ibGVtIGJ5IGVuc3VyaW5nCisgICAgICAg
IHRoYXQgRmx1c2hlcyBhcmUgYWx3YXlzIHN0cmVuZ3RoLXJlZHVjZWQgdG8gUGhhbnRvbUxvY2Fs
cywgYW5kIENQUyByZXRocmVhZGluZyBkb2VzIGEgbWluaQorICAgICAgICBPU1IgYXZhaWxhYmls
aXR5IGFuYWx5c2lzIHRvIGRldGVybWluZSB0aGUgcmlnaHQgTW92SGludCB2YWx1ZSB0byB1c2Ug
Zm9yIHRoZSBQaGFudG9tLgorCisgICAgICAgICogZGZnL0RGR0NQU1JldGhyZWFkaW5nUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkNQU1JldGhyZWFkaW5nUGhhc2U6OkNQU1JldGhyZWFk
aW5nUGhhc2UpOgorICAgICAgICAoSlNDOjpERkc6OkNQU1JldGhyZWFkaW5nUGhhc2U6OmZyZWVV
bm5lY2Vzc2FyeU5vZGVzKToKKyAgICAgICAgKEpTQzo6REZHOjpDUFNSZXRocmVhZGluZ1BoYXNl
OjpjbGVhclZhcmlhYmxlcyk6CisgICAgICAgIChKU0M6OkRGRzo6Q1BTUmV0aHJlYWRpbmdQaGFz
ZTo6Y2Fub25pY2FsaXplRmx1c2hPclBoYW50b21Mb2NhbEZvcik6CisgICAgICAgIChKU0M6OkRG
Rzo6Q1BTUmV0aHJlYWRpbmdQaGFzZTo6Y2Fub25pY2FsaXplTG9jYWxzSW5CbG9jayk6CisgICAg
ICAgIChKU0M6OkRGRzo6Q1BTUmV0aHJlYWRpbmdQaGFzZTo6Y2xlYXJWYXJpYWJsZXNBdEhlYWRB
bmRUYWlsKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlND
OjpERkc6Ok5vZGU6OmNvbnZlcnRQaGFudG9tVG9QaGFudG9tTG9jYWwpOgorICAgICAgICAoSlND
OjpERkc6Ok5vZGU6OmNvbnZlcnRGbHVzaFRvUGhhbnRvbUxvY2FsKToKKyAgICAgICAgKEpTQzo6
REZHOjpOb2RlOjpjb252ZXJ0VG9QaGFudG9tTG9jYWwpOiBEZWxldGVkLgorICAgICAgICAqIGRm
Zy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTdHJl
bmd0aFJlZHVjdGlvblBoYXNlOjpoYW5kbGVOb2RlKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
aW5saW5lLWNhbGwtdGhhdC1kb2VzbnQtdXNlLWFsbC1hcmdzLmpzOiBBZGRlZC4KKyAgICAgICAg
KGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoYmF6KToKKwogMjAxNS0wMS0zMCAgRGFu
aWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXA6IFJlbW92
ZSB1bm5lY2Vzc2FyeSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4gaGVhZGVyIGZyb20gUmVtb3RlSW5z
cGVjdG9yRGVidWdnYWJsZUNvbm5lY3Rpb24uaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDUFNSZXRocmVhZGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NQU1JldGhyZWFkaW5nUGhhc2UuY3BwCShyZXZpc2lvbiAxNzk0
MzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NQU1JldGhyZWFkaW5nUGhhc2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDYgKzM5LDcgQEAgY2xhc3MgQ1BTUmV0aHJlYWRp
bmdQaGFzZSA6IHB1YmxpYyBQaGFzZQogcHVibGljOgogICAgIENQU1JldGhyZWFkaW5nUGhhc2Uo
R3JhcGgmIGdyYXBoKQogICAgICAgICA6IFBoYXNlKGdyYXBoLCAiQ1BTIHJldGhyZWFkaW5nIikK
KyAgICAgICAgLCBtX2F2YWlsYWJsZUZvck9TUihPcGVyYW5kc0xpa2UsIGdyYXBoLmJsb2NrKDAp
LT52YXJpYWJsZXNBdEhlYWQpCiAgICAgewogICAgIH0KICAgICAKQEAgLTk4LDcgKzk5LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgY2FzZSBQaGk6CiAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgU2V0QXJndW1lbnQ6CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgU2V0TG9jYWw6
Ci0gICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9QaGFudG9tTG9jYWwoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRQaGFudG9tVG9QaGFudG9tTG9j
YWwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKG5vZGUtPmNoaWxkMSgp
LT5oYXNSZXN1bHQoKSk7CkBAIC0xMTksMTUgKzEyMCwxOSBAQCBwcml2YXRlOgogICAgIH0KICAg
ICAKICAgICB0ZW1wbGF0ZTxPcGVyYW5kS2luZCBvcGVyYW5kS2luZD4KLSAgICB2b2lkIGNsZWFy
VmFyaWFibGVzQXRIZWFkQW5kVGFpbCgpCisgICAgdm9pZCBjbGVhclZhcmlhYmxlcygpCiAgICAg
ewogICAgICAgICBBU1NFUlQoCiAgICAgICAgICAgICBtX2Jsb2NrLT52YXJpYWJsZXNBdEhlYWQu
c2l6ZUZvcjxvcGVyYW5kS2luZD4oKQogICAgICAgICAgICAgPT0gbV9ibG9jay0+dmFyaWFibGVz
QXRUYWlsLnNpemVGb3I8b3BlcmFuZEtpbmQ+KCkpOworICAgICAgICBBU1NFUlQoCisgICAgICAg
ICAgICBtX2Jsb2NrLT52YXJpYWJsZXNBdEhlYWQuc2l6ZUZvcjxvcGVyYW5kS2luZD4oKQorICAg
ICAgICAgICAgPT0gbV9hdmFpbGFibGVGb3JPU1Iuc2l6ZUZvcjxvcGVyYW5kS2luZD4oKSk7CiAg
ICAgICAgIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2Jsb2NrLT52YXJpYWJsZXNBdEhl
YWQuc2l6ZUZvcjxvcGVyYW5kS2luZD4oKTsgaS0tOykgewotICAgICAgICAgICAgbV9ibG9jay0+
dmFyaWFibGVzQXRIZWFkLmF0Rm9yPG9wZXJhbmRLaW5kPihpKSA9IDA7Ci0gICAgICAgICAgICBt
X2Jsb2NrLT52YXJpYWJsZXNBdFRhaWwuYXRGb3I8b3BlcmFuZEtpbmQ+KGkpID0gMDsKKyAgICAg
ICAgICAgIG1fYmxvY2stPnZhcmlhYmxlc0F0SGVhZC5hdEZvcjxvcGVyYW5kS2luZD4oaSkgPSBu
dWxscHRyOworICAgICAgICAgICAgbV9ibG9jay0+dmFyaWFibGVzQXRUYWlsLmF0Rm9yPG9wZXJh
bmRLaW5kPihpKSA9IG51bGxwdHI7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUZvck9TUi5hdEZv
cjxvcGVyYW5kS2luZD4oaSkgPSBFZGdlKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC0y
NTksMTMgKzI2NCwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIC8vIGZvciB0aGUgcHVy
cG9zZSBvZiBPU1IuIFBoYW50b21Mb2NhbChTZXRMb2NhbCkgbWVhbnM6IGF0IHRoaXMgcG9pbnQg
SQogICAgICAgICAgICAgICAgIC8vIGtub3cgdGhhdCBJIHdvdWxkIGhhdmUgcmVhZCB0aGUgdmFs
dWUgd3JpdHRlbiBieSB0aGF0IFNldExvY2FsLiBUaGlzIGlzCiAgICAgICAgICAgICAgICAgLy8g
cmVkdW5kYW50IGFuZCBpbmVmZmljaWVudCwgc2luY2UgcmVhbGx5IGl0IGp1c3QgbWVhbnMgdGhh
dCB3ZSB3YW50IHRvCi0gICAgICAgICAgICAgICAgLy8gYmUga2VlcGluZyB0aGUgb3BlcmFuZCB0
byB0aGUgU2V0TG9jYWwgYWxpdmUuIFRoZSBTZXRMb2NhbCBtYXkgZGllLCBhbmQKLSAgICAgICAg
ICAgICAgICAvLyB3ZSdsbCBiZSBmaW5lIGJlY2F1c2UgT1NSIHRyYWNrcyBkZWFkIFNldExvY2Fs
cy4KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvLyBTbyB3ZSB0dXJuIHRoaXMg
aW50byBhIFBoYW50b20gb24gdGhlIGNoaWxkIG9mIHRoZSBTZXRMb2NhbC4KKyAgICAgICAgICAg
ICAgICAvLyBiZSBrZWVwaW5nIHRoZSBsYXN0IE1vdkhpbnRlZCB2YWx1ZSBvZiB0aGF0IGxvY2Fs
IGFsaXZlLgogICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVu
LnNldENoaWxkMShtX2F2YWlsYWJsZUZvck9TUi5hdEZvcjxvcGVyYW5kS2luZD4oaWR4KSk7CiAg
ICAgICAgICAgICAgICAgbm9kZS0+Y29udmVydFRvUGhhbnRvbSgpOwotICAgICAgICAgICAgICAg
IG5vZGUtPmNoaWxkcmVuLnNldENoaWxkMShvdGhlck5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTMxMSw4ICsz
MTMsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBBU1NFUlQobV9i
bG9jay0+aXNSZWFjaGFibGUpOwogICAgICAgICAKLSAgICAgICAgY2xlYXJWYXJpYWJsZXNBdEhl
YWRBbmRUYWlsPEFyZ3VtZW50T3BlcmFuZD4oKTsKLSAgICAgICAgY2xlYXJWYXJpYWJsZXNBdEhl
YWRBbmRUYWlsPExvY2FsT3BlcmFuZD4oKTsKKyAgICAgICAgY2xlYXJWYXJpYWJsZXM8QXJndW1l
bnRPcGVyYW5kPigpOworICAgICAgICBjbGVhclZhcmlhYmxlczxMb2NhbE9wZXJhbmQ+KCk7CiAg
ICAgICAgIAogICAgICAgICAvLyBBc3N1bWVzIHRoYXQgYWxsIHBoaSByZWZlcmVuY2VzIGhhdmUg
YmVlbiByZW1vdmVkLiBBc3N1bWVzIHRoYXQgdGhpbmdzIHRoYXQKICAgICAgICAgLy8gc2hvdWxk
IGJlIGxpdmUgaGF2ZSBhIG5vbi16ZXJvIHJlZiBjb3VudCwgYnV0IGRvZXNuJ3QgYXNzdW1lIHRo
YXQgdGhlIHJlZgpAQCAtMzgyLDYgKzM4NCwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAg
IGNhbm9uaWNhbGl6ZVNldEFyZ3VtZW50KG5vZGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBNb3ZIaW50OgorICAgICAgICAgICAg
ICAgIG1fYXZhaWxhYmxlRm9yT1NSLm9wZXJhbmQobm9kZS0+dW5saW5rZWRMb2NhbCgpKSA9IG5v
ZGUtPmNoaWxkMSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KQEAgLTUyMiw2ICs1MjgsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxQaGlTdGFja0VudHJ5
LCAxMjg+IG1fYXJndW1lbnRQaGlTdGFjazsKICAgICBWZWN0b3I8UGhpU3RhY2tFbnRyeSwgMTI4
PiBtX2xvY2FsUGhpU3RhY2s7CiAgICAgVmVjdG9yPE5vZGUqLCAxMjg+IG1fZmx1c2hlZExvY2Fs
T3BXb3JrbGlzdDsKKyAgICBPcGVyYW5kczxFZGdlPiBtX2F2YWlsYWJsZUZvck9TUjsKIH07CiAK
IGJvb2wgcGVyZm9ybUNQU1JldGhyZWFkaW5nKEdyYXBoJiBncmFwaCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAxNzk0MzEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01
MzgsNyArNTM4LDcgQEAgc3RydWN0IE5vZGUgewogICAgICAgICBjaGlsZHJlbiA9IEFkamFjZW5j
eUxpc3QoKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBjb252ZXJ0VG9QaGFudG9tTG9jYWwoKQor
ICAgIHZvaWQgY29udmVydFBoYW50b21Ub1BoYW50b21Mb2NhbCgpCiAgICAgewogICAgICAgICBB
U1NFUlQobV9vcCA9PSBQaGFudG9tICYmIChjaGlsZDEoKS0+b3AoKSA9PSBQaGkgfHwgY2hpbGQx
KCktPm9wKCkgPT0gU2V0TG9jYWwgfHwgY2hpbGQxKCktPm9wKCkgPT0gU2V0QXJndW1lbnQpKTsK
ICAgICAgICAgbV9vcCA9IFBoYW50b21Mb2NhbDsKQEAgLTU0Niw2ICs1NDYsMTMgQEAgc3RydWN0
IE5vZGUgewogICAgICAgICBjaGlsZHJlbi5zZXRDaGlsZDEoRWRnZSgpKTsKICAgICB9CiAgICAg
CisgICAgdm9pZCBjb252ZXJ0Rmx1c2hUb1BoYW50b21Mb2NhbCgpCisgICAgeworICAgICAgICBB
U1NFUlQobV9vcCA9PSBGbHVzaCk7CisgICAgICAgIG1fb3AgPSBQaGFudG9tTG9jYWw7CisgICAg
ICAgIGNoaWxkcmVuID0gQWRqYWNlbmN5TGlzdCgpOworICAgIH0KKyAgICAKICAgICB2b2lkIGNv
bnZlcnRUb0dldExvY2FsKFZhcmlhYmxlQWNjZXNzRGF0YSogdmFyaWFibGUsIE5vZGUqIHBoaSkK
ICAgICB7CiAgICAgICAgIEFTU0VSVChtX29wID09IEdldExvY2FsVW5saW5rZWQpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0
aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxNzk0MzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4
MCwxMCArMjgwLDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpZiAoIXNldExvY2FsKQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBtX25vZGUtPmNv
bnZlcnRUb1BoYW50b20oKTsKLSAgICAgICAgICAgIE5vZGUqIGRhdGFOb2RlID0gc2V0TG9jYWwt
PmNoaWxkMSgpLm5vZGUoKTsKLSAgICAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbV9ub2Rl
LCBkYXRhTm9kZS0+aGFzUmVzdWx0KCkpOwotICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDEoKSA9
IGRhdGFOb2RlLT5kZWZhdWx0RWRnZSgpOworICAgICAgICAgICAgLy8gVGhlIEZsdXNoIHNob3Vs
ZCBiZWNvbWUgYSBQaGFudG9tTG9jYWwgYXQgdGhpcyBwb2ludC4gVGhpcyBtZWFucyB0aGF0IHdl
IHdhbnQgdGhlCisgICAgICAgICAgICAvLyBsb2NhbCdzIHZhbHVlIGR1cmluZyBPU1IsIGJ1dCB3
ZSBkb24ndCBjYXJlIGlmIHRoZSB2YWx1ZSBpcyBzdG9yZWQgdG8gdGhlIHN0YWNrLiBDUFMKKyAg
ICAgICAgICAgIC8vIHJldGhyZWFkaW5nIGNhbiBjYW5vbmljYWxpemUgUGhhbnRvbUxvY2FscyBm
b3IgdXMuCisgICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRGbHVzaFRvUGhhbnRvbUxvY2FsKCk7
CiAgICAgICAgICAgICBtX2dyYXBoLmRldGhyZWFkKCk7CiAgICAgICAgICAgICBtX2NoYW5nZWQg
PSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXRoYXQtZG9lc250LXVzZS1hbGwtYXJncy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jYWxs
LXRoYXQtZG9lc250LXVzZS1hbGwtYXJncy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdGhhdC1kb2VzbnQtdXNlLWFsbC1h
cmdzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKK2Z1bmN0aW9uIGZvbyhhLCBi
LCBjKSB7CisgICAgcmV0dXJuIDQyOworfQorCitmdW5jdGlvbiBiYXIoYSwgYiwgYykgeworICAg
IHJldHVybiBhICsgYiArIGM7Cit9CisKK2Z1bmN0aW9uIGJheihmLCBvKSB7CisgICAgcmV0dXJu
IGYob1swXSwgb1sxXSwgb1syXSk7Cit9CisKK25vSW5saW5lKGJheik7CisKK3ZhciBvID0gbmV3
IEZsb2F0MzJBcnJheSgzKTsKK29bMF0gPSAxOworb1sxXSA9IDI7CitvWzJdID0gMzsKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBiYXooZm9vLCBv
KTsKKyAgICBpZiAocmVzdWx0ICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQgaW4gbG9vcDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGJheihiYXIsIG8pOwor
aWYgKHJlc3VsdCAhPSA2KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBpbiBsb29wOiAi
ICsgcmVzdWx0Owo=
</data>
<flag name="review"
          id="270698"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>