<?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>117217</bug_id>
          
          <creation_ts>2013-06-04 17:21:21 -0700</creation_ts>
          <short_desc>fourthTier: Clean up AbstractValue</short_desc>
          <delta_ts>2013-06-05 11:13:23 -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>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="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>897095</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-06-04 17:21:21 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897096</commentid>
    <comment_count>1</comment_count>
      <attachid>203743</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-06-04 17:34:25 -0700</bug_when>
    <thetext>Created attachment 203743
the patch

I&apos;m going to try to come up with a test case for this...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897102</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-06-04 18:15:24 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=203743) [details]
&gt; the patch
&gt; 
&gt; I&apos;m going to try to come up with a test case for this...

I tried but failed.  This requires a very perverse combination of circumstances to become symptomatic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897132</commentid>
    <comment_count>3</comment_count>
      <attachid>203743</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-06-04 21:57:17 -0700</bug_when>
    <thetext>Comment on attachment 203743
the patch

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

&gt; Source/JavaScriptCore/dfg/DFGAbstractValue.cpp:220
&gt; +    if (!(m_type &amp; SpecCell)) {
&gt; +        ASSERT(m_currentKnownStructure.isClear());
&gt; +        ASSERT(m_futurePossibleStructure.isClear());
&gt; +        ASSERT(!m_arrayModes);
&gt; +    }
&gt; +    
&gt; +    if (isClear())
&gt; +        ASSERT(!m_value);
&gt; +    
&gt; +    if (!!m_value)
&gt; +        ASSERT(mergeSpeculations(m_type, speculationFromValue(m_value)) == m_type);
&gt; +    
&gt; +    // Note that it&apos;s possible for a prediction like (Final, []). This really means that
&gt; +    // the value is bottom and that any code that uses the value is unreachable. But
&gt; +    // we don&apos;t want to get pedantic about this as it would only increase the computational
&gt; +    // complexity of the code.

You could consider putting this all in a #if !ASSERT_DISABLED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897478</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-06-05 11:13:23 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/151229</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203743</attachid>
            <date>2013-06-04 17:34:25 -0700</date>
            <delta_ts>2013-06-04 21:57:17 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>15799</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxMTkyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc0IEBA
CisyMDEzLTA2LTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogQ2xlYW4gdXAgQWJzdHJhY3RWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3MjE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIHN0YXJ0ZWQgYXMgYW4gYXR0
ZW1wdCB0byBtYWtlIGl0IHNvIHRoYXQgd2hlbiBBYnN0cmFjdFZhbHVlIGJlY29tZXMgZW1wdHks
CisgICAgICAgIGl0cyBtX3R5cGUgYWx3YXlzIGJlY29tZXMgU3BlY05vbmUuIEkgd2FudGVkIHRo
aXMgdG8gaGFwcGVuIG5hdHVyYWxseS4gVGhhdCB0dXJucworICAgICAgICBvdXQgdG8gYmUgYmFz
aWNhbGx5IGltcG9zc2libGUsIHNpbmNlIEFic3RyYWN0VmFsdWUgaXMgYSBzZXQgdGhhdCBpcyBk
eW5hbWljYWxseQorICAgICAgICBjb21wdXRlZCBmcm9tIHRoZSBpbnRlcnNlY3Rpb24gb2Ygc2V2
ZXJhbCBpbnRlcm5hbCBzZXRzOiBzbyB0aGUgdmFsdWUgYmVjb21lcworICAgICAgICBlbXB0eSB3
aGVuIGFueSBvZiB0aGUgc2V0cyBnbyBlbXB0eS4gSXQncyBPSyBpZiB3ZSdyZSBpbXByZWNpc2Ug
aGVyZSBiZWNhdXNlIGl0J3MKKyAgICAgICAgYWx3YXlzIHNhZmUgZm9yIHRoZSBBYnN0cmFjdFZh
bHVlIHRvIHNlZW0gdG8gb3ZlcmFwcHJveGltYXRlIHRoZSBzZXQgb2YgdmFsdWVzCisgICAgICAg
IHRoYXQgd2Ugc2VlLiBTbyBJIG1vc3RseSBnYXZlIHVwIG9uIGNsZWFuaW5nIHVwIHRoYXQgYXNw
ZWN0IG9mIEFic3RyYWN0VmFsdWUuIEJ1dAorICAgICAgICB3aGlsZSB0cnlpbmcgdG8gbWFrZSB0
aGlzIGhhcHBlbiwgSSBlbmNvdW50ZXJlZCB0d28gYnVnczoKKyAgICAgICAgCisgICAgICAgIC0g
ZmlsdGVyVmFsdWVCeVR5cGUoKSBpZ25vcmVzIHRoZSBjYXNlIHdoZW4gbV90eXBlIGNvbnRyYXZl
bmVzIG1fdmFsdWUuIE5hbWVseSwKKyAgICAgICAgICB3ZSBtaWdodCBmaWx0ZXIgdGhlIEFic3Ry
YWN0VmFsdWUgYWdhaW5zdCBhIFNwZWN1bGF0ZWRUeXBlIGxlYWRpbmcgdG8gbV92YWx1ZQorICAg
ICAgICAgIGJlY29taW5nIGluY29uc2lzdGVudCB3aXRoIHRoZSBuZXcgbV90eXBlLiBUaGlzIGNo
YW5nZSBmaXhlcyB0aGF0IGNhc2UuIFRoaXMKKyAgICAgICAgICB3YXNuJ3QgYSBzeW1wdG9tYXRp
YyBidWcgYnV0IGl0IHdhcyBhIHNpbGx5IG92ZXJzaWdodC4KKyAgICAgICAgCisgICAgICAgIC0g
ZmlsdGVyRnV0dXJlUG9zc2libGVTdHJ1Y3R1cmUoKSB3YXMgbmV2ZXIgcmlnaHQuIFRoZSBvbmUg
Y2FsbCB0byB0aGlzIG1ldGhvZCwKKyAgICAgICAgICBpbiBmaWx0ZXIoR3JhcGgmLCBjb25zdCBT
dHJ1Y3R1cmVTZXQmKSwgYXNzdW1lZCB0aGF0IHRoZSBwcmV2aW91cyBub3Rpb25zIG9mCisgICAg
ICAgICAgd2hhdCBzdHJ1Y3R1cmVzIHRoZSB2YWx1ZSBjb3VsZCBoYXZlIGluIHRoZSBmdXR1cmUg
d2VyZSBzdGlsbCByZWxldmFudC4gVGhpcworICAgICAgICAgIGNvdWxkIGxlYWQgdG8gYSBidWcg
d2hlcmUgd2U6CisgICAgICAgICAgCisgICAgICAgICAgMSkgQ2hlY2tTdHJ1Y3R1cmUoQGZvbywg
UzEpCisgICAgICAgICAgCisgICAgICAgICAgICAgV2hlcmUgUzEgaGFzIGEgdmFsaWQgd2F0Y2hw
b2ludC4gTm93IEBmb28ncyBhYnN0cmFjdCB2YWx1ZSB3aWxsIGhhdmUgY3VycmVudAorICAgICAg
ICAgICAgIGFuZCBmdXR1cmUgc3RydWN0dXJlID0gUzEuCisgICAgICAgICAgCisgICAgICAgICAg
MikgQ2xvYmJlciB0aGUgd29ybGQuCisgICAgICAgICAgCisgICAgICAgICAgICAgTm93IEBmb28n
cyBhYnN0cmFjdCB2YWx1ZSB3aWxsIGhhdmUgY3VycmVudCBzdHJ1Y3R1cmUgPSBUT1AsIGFuZCBm
dXR1cmUKKyAgICAgICAgICAgICBwb3NzaWJsZSBzdHJ1Y3R1cmUgPSBTMS4KKyAgICAgICAgICAK
KyAgICAgICAgICAzKSBDaGVja1N0cnVjdHVyZShAZm9vLCBTMikKKyAgICAgICAgICAKKyAgICAg
ICAgICAgICBOb3cgQGZvbydzIGFic3RyYWN0IHZhbHVlIHdpbGwgaGF2ZSBjdXJyZW50IHN0cnVj
dHVyZSA9IFMyIGFuZCBmdXR1cmUKKyAgICAgICAgICAgICBwb3NzaWJsZSBzdHJ1Y3R1cmUgPSBT
MSBpbnRlcnNlY3QgUzIgPSBCT1RUT00uCisgICAgICAgICAgCisgICAgICAgICAgTm93IHdlIHdp
bGwgdGhpbmsgdGhhdCBhbnkgc3Vic2VxdWVudCB3YXRjaHBvaW50IG9uIEBmb28gaXMgdmFsaWQg
YmVjYXVzZSB0aGUKKyAgICAgICAgICB2YWx1ZSBpcyBlZmZlY3RpdmVseSBCT1RUT00uIFRoYXQg
d291bGQgb25seSBiZSBjb3JyZWN0IGlmIHdlIGhhZCBhY3R1YWxseSBzZXQKKyAgICAgICAgICBh
IHdhdGNocG9pbnQgb24gUzEuIElmIHdlIGhhZCBkb25lIHNvLCB0aGVuICgzKSB3b3VsZCBvbmx5
IHBhc3MgKGkuZS4gQGZvbworICAgICAgICAgIHdvdWxkIG9ubHkgaGF2ZSBzdHJ1Y3R1cmUgUzIp
IGlmIFMxJ3Mgd2F0Y2hwb2ludCBmaXJlZCwgaW4gd2hpY2ggY2FzZSAoMykKKyAgICAgICAgICB3
b3VsZG4ndCBoYXZlIGJlZW4gcmVhY2hhYmxlLiBCdXQgd2UgZGlkbid0IGFjdHVhbGx5IHNldCBh
IHdhdGNocG9pbnQgb24gUzE6CisgICAgICAgICAgd2UganVzdCBvYnNlcnZlZCB0aGF0IHdlICpj
b3VsZCogaGF2ZSBzZXQgdGhlIHdhdGNocG9pbnQuIEhlbmNlIGZ1dHVyZSBwb3NzaWJsZQorICAg
ICAgICAgIHN0cnVjdHVyZSBzaG91bGQgb25seSBiZSBzZXQgdG8gZWl0aGVyIHRoZSBrbm93biBz
dHJ1Y3R1cmUgYXQgY29tcGlsZS10aW1lLCBvcgorICAgICAgICAgIGl0IHNob3VsZCBiZSB0aGUg
c3RydWN0dXJlIHdlIGp1c3QgY2hlY2tlZDsgaW4gYm90aCBjYXNlcyBpdCBzaG91bGQgb25seSBi
ZSBzZXQKKyAgICAgICAgICBpZiB0aGUgc3RydWN0dXJlIGlzIHdhdGNoYWJsZS4KKyAgICAgICAg
CisgICAgICAgIFRoZW4sIGluIGFkZGl0aW9uIHRvIGFsbCBvZiB0aGlzLCBJIGNoYW5nZWQgQWJz
dHJhY3RWYWx1ZSdzIGZpbHRlcmluZyBtZXRob2RzIHRvCisgICAgICAgIGNhbGwgY2xlYXIoKSBp
ZiB0aGUgQWJzdHJhY3RWYWx1ZSBpcyBlZmZlY3RpdmVseSBjbGVhci4gVGhpcyBpcyBqdXN0IG1l
YW50IHRvCisgICAgICAgIHNpbXBsaWZ5IHRoZSByZWNvZ25pdGlvbiBvZiB0cnVseSBlbXB0eSBB
YnN0cmFjdFZhbHVlcywgYnV0IGRvZXNuJ3QgYWN0dWFsbHkgaGF2ZQorICAgICAgICBhbnkgb3Ro
ZXIgaW1wbGljYXRpb25zLgorCisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJlU2V0Lmg6Cisg
ICAgICAgIChKU0M6OlN0cnVjdHVyZVNldDo6ZHVtcCk6CisgICAgICAgICogZGZnL0RGR0Fic3Ry
YWN0VmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0VmFsdWU6OmZpbHRlcik6
CisgICAgICAgIChERkcpOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0VmFsdWU6OmZpbHRl
ckFycmF5TW9kZXMpOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0VmFsdWU6OmZpbHRlclZh
bHVlQnlUeXBlKToKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFZhbHVlOjpmaWx0ZXJBcnJh
eU1vZGVzQnlUeXBlKToKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFZhbHVlOjpzaG91bGRC
ZUNsZWFyKToKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFZhbHVlOjpub3JtYWxpemVDbGFy
aXR5KToKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFZhbHVlOjpjaGVja0NvbnNpc3RlbmN5
KToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RWYWx1ZS5oOgorICAgICAgICAoSlNDOjpERkc6
OkFic3RyYWN0VmFsdWU6OmlzQ2xlYXIpOgorICAgICAgICAoQWJzdHJhY3RWYWx1ZSk6CisKIDIw
MTMtMDYtMDQgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFRoZSBE
RkcgSklUIHNob3VsZCBwb3B1bGF0ZSBmcmFtZSBieXRlY29kZU9mZnNldHMgb24gT1NSIGV4aXQu
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU2V0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5o
CShyZXZpc2lvbiAxNTExODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3Ry
dWN0dXJlU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTcGVj
dWxhdGVkVHlwZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIEpTQyB7CkBAIC0xNjEsMTUgKzE2MiwxMyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KICAgICAKLSAgICB2b2lkIGR1bXAoRklMRSogb3V0KQorICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIHsKLSAgICAgICAgZnByaW50
ZihvdXQsICJbIik7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zdHJ1Y3R1cmVz
LnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoaSkKLSAgICAgICAgICAgICAgICBmcHJp
bnRmKG91dCwgIiwgIik7Ci0gICAgICAgICAgICBmcHJpbnRmKG91dCwgIiVwIiwgbV9zdHJ1Y3R1
cmVzW2ldKTsKLSAgICAgICAgfQotICAgICAgICBmcHJpbnRmKG91dCwgIl0iKTsKKyAgICAgICAg
Q29tbWFQcmludGVyIGNvbW1hOworICAgICAgICBvdXQucHJpbnQoIlsiKTsKKyAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtX3N0cnVjdHVyZXMuc2l6ZSgpOyArK2kpCisgICAgICAgICAg
ICBvdXQucHJpbnQoY29tbWEsIFJhd1BvaW50ZXIobV9zdHJ1Y3R1cmVzW2ldKSk7CisgICAgICAg
IG91dC5wcmludCgiXSIpOwogICAgIH0KICAgICAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHAJKHJldmlzaW9uIDE1MTE4
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBBYnN0cmFjdFZhbHVlOjpzZXQoR3Jh
cGgmIGdyYXBoLCBTdAogICAgIG1fYXJyYXlNb2RlcyA9IGFzQXJyYXlNb2RlcyhzdHJ1Y3R1cmUt
PmluZGV4aW5nVHlwZSgpKTsKICAgICBtX3R5cGUgPSBzcGVjdWxhdGlvbkZyb21TdHJ1Y3R1cmUo
c3RydWN0dXJlKTsKICAgICBtX3ZhbHVlID0gSlNWYWx1ZSgpOwotICAgICAgICAKKyAgICAKICAg
ICBjaGVja0NvbnNpc3RlbmN5KCk7CiB9CiAKQEAgLTg4LDI1ICs4OCw1NSBAQCB2b2lkIEFic3Ry
YWN0VmFsdWU6OmZpbHRlcihHcmFwaCYgZ3JhcGgsCiAgICAgLy8gRklYTUU6IFRoaXMgY291bGQg
YmUgb3B0aW1pemVkIGZvciB0aGUgY29tbW9uIGNhc2Ugb2YgbV90eXBlIG5vdAogICAgIC8vIGhh
dmluZyBzdHJ1Y3R1cmVzLCBhcnJheSBtb2Rlcywgb3IgYSBzcGVjaWZpYyB2YWx1ZS4KICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NjYzCisgICAgCiAg
ICAgbV90eXBlICY9IG90aGVyLnNwZWN1bGF0aW9uRnJvbVN0cnVjdHVyZXMoKTsKICAgICBtX2Fy
cmF5TW9kZXMgJj0gb3RoZXIuYXJyYXlNb2Rlc0Zyb21TdHJ1Y3R1cmVzKCk7CiAgICAgbV9jdXJy
ZW50S25vd25TdHJ1Y3R1cmUuZmlsdGVyKG90aGVyKTsKLSAgICBpZiAobV9jdXJyZW50S25vd25T
dHJ1Y3R1cmUuaXNDbGVhcigpKQotICAgICAgICBtX2Z1dHVyZVBvc3NpYmxlU3RydWN0dXJlLmNs
ZWFyKCk7Ci0gICAgZWxzZSBpZiAobV9jdXJyZW50S25vd25TdHJ1Y3R1cmUuaGFzU2luZ2xldG9u
KCkpCi0gICAgICAgIGZpbHRlckZ1dHVyZVBvc3NpYmxlU3RydWN0dXJlKGdyYXBoLCBtX2N1cnJl
bnRLbm93blN0cnVjdHVyZS5zaW5nbGV0b24oKSk7Ci0gICAgICAgIAorICAgIAogICAgIC8vIEl0
J3MgcG9zc2libGUgdGhhdCBwcmlvciB0byB0aGUgYWJvdmUgdHdvIHN0YXRlbWVudHMgd2UgaGFk
IChGb28sIFRPUCksIHdoZXJlCiAgICAgLy8gRm9vIGlzIGEgU3BlY3VsYXRlZFR5cGUgdGhhdCBp
cyBkaXNqb2ludCB3aXRoIHRoZSBwYXNzZWQgU3RydWN0dXJlU2V0LiBJbiB0aGF0CiAgICAgLy8g
Y2FzZSwgd2Ugd2lsbCBub3cgaGF2ZSAoTm9uZSwgW3NvbWVTdHJ1Y3R1cmVdKS4gSW4gZ2VuZXJh
bCwgd2UgbmVlZCB0byBtYWtlCiAgICAgLy8gc3VyZSB0aGF0IG5ldyBpbmZvcm1hdGlvbiBnbGVh
bmVkIGZyb20gdGhlIFNwZWN1bGF0ZWRUeXBlIG5lZWRzIHRvIGJlIGZlZCBiYWNrCiAgICAgLy8g
aW50byB0aGUgaW5mb3JtYXRpb24gZ2xlYW5lZCBmcm9tIHRoZSBTdHJ1Y3R1cmVTZXQuCiAgICAg
bV9jdXJyZW50S25vd25TdHJ1Y3R1cmUuZmlsdGVyKG1fdHlwZSk7Ci0gICAgbV9mdXR1cmVQb3Nz
aWJsZVN0cnVjdHVyZS5maWx0ZXIobV90eXBlKTsKKyAgICAKKyAgICBpZiAobV9jdXJyZW50S25v
d25TdHJ1Y3R1cmUuaGFzU2luZ2xldG9uKCkpCisgICAgICAgIHNldEZ1dHVyZVBvc3NpYmxlU3Ry
dWN0dXJlKGdyYXBoLCBtX2N1cnJlbnRLbm93blN0cnVjdHVyZS5zaW5nbGV0b24oKSk7CiAgICAg
ICAgIAogICAgIGZpbHRlckFycmF5TW9kZXNCeVR5cGUoKTsKICAgICBmaWx0ZXJWYWx1ZUJ5VHlw
ZSgpOwotICAgICAgICAKKyAgICBub3JtYWxpemVDbGFyaXR5KCk7CisgICAgCisgICAgY2hlY2tD
b25zaXN0ZW5jeSgpOworfQorCit2b2lkIEFic3RyYWN0VmFsdWU6OmZpbHRlckFycmF5TW9kZXMo
QXJyYXlNb2RlcyBhcnJheU1vZGVzKQoreworICAgIEFTU0VSVChhcnJheU1vZGVzKTsKKyAgICAK
KyAgICBtX3R5cGUgJj0gU3BlY0NlbGw7CisgICAgbV9hcnJheU1vZGVzICY9IGFycmF5TW9kZXM7
CisgICAgbm9ybWFsaXplQ2xhcml0eSgpOworICAgIAorICAgIGNoZWNrQ29uc2lzdGVuY3koKTsK
K30KKwordm9pZCBBYnN0cmFjdFZhbHVlOjpmaWx0ZXIoU3BlY3VsYXRlZFR5cGUgdHlwZSkKK3sK
KyAgICBpZiAodHlwZSA9PSBTcGVjVG9wKQorICAgICAgICByZXR1cm47CisgICAgbV90eXBlICY9
IHR5cGU7CisgICAgCisgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHByaW9yIHRvIHRoaXMgZmls
dGVyKCkgY2FsbCB3ZSBoYWQsIHNheSwgKEZpbmFsLCBUT1ApLCBhbmQKKyAgICAvLyB0aGUgcGFz
c2VkIHR5cGUgaXMgQXJyYXkuIEF0IHRoaXMgcG9pbnQgd2UnbGwgaGF2ZSAoTm9uZSwgVE9QKS4g
VGhlIGJlc3Qgd2F5CisgICAgLy8gdG8gZW5zdXJlIHRoYXQgdGhlIHN0cnVjdHVyZSBmaWx0ZXJp
bmcgZG9lcyB0aGUgcmlnaHQgdGhpbmcgaXMgdG8gZmlsdGVyIG9uCisgICAgLy8gdGhlIG5ldyB0
eXBlIChOb25lKSByYXRoZXIgdGhhbiB0aGUgb25lIHBhc3NlZCAoQXJyYXkpLgorICAgIG1fY3Vy
cmVudEtub3duU3RydWN0dXJlLmZpbHRlcihtX3R5cGUpOworICAgIG1fZnV0dXJlUG9zc2libGVT
dHJ1Y3R1cmUuZmlsdGVyKG1fdHlwZSk7CisgICAgZmlsdGVyQXJyYXlNb2Rlc0J5VHlwZSgpOwor
ICAgIGZpbHRlclZhbHVlQnlUeXBlKCk7CisgICAgbm9ybWFsaXplQ2xhcml0eSgpOworICAgIAog
ICAgIGNoZWNrQ29uc2lzdGVuY3koKTsKIH0KIApAQCAtMTE4LDEwICsxNDgsNzYgQEAgdm9pZCBB
YnN0cmFjdFZhbHVlOjpzZXRGdXR1cmVQb3NzaWJsZVN0cgogICAgICAgICBtX2Z1dHVyZVBvc3Np
YmxlU3RydWN0dXJlLm1ha2VUb3AoKTsKIH0KIAotdm9pZCBBYnN0cmFjdFZhbHVlOjpmaWx0ZXJG
dXR1cmVQb3NzaWJsZVN0cnVjdHVyZShHcmFwaCYgZ3JhcGgsIFN0cnVjdHVyZSogc3RydWN0dXJl
KQordm9pZCBBYnN0cmFjdFZhbHVlOjpmaWx0ZXJWYWx1ZUJ5VHlwZSgpCiB7Ci0gICAgaWYgKGdy
YXBoLndhdGNocG9pbnRzKCkuaXNTdGlsbFZhbGlkKHN0cnVjdHVyZS0+dHJhbnNpdGlvbldhdGNo
cG9pbnRTZXQoKSkpCi0gICAgICAgIG1fZnV0dXJlUG9zc2libGVTdHJ1Y3R1cmUuZmlsdGVyKFN0
cnVjdHVyZUFic3RyYWN0VmFsdWUoc3RydWN0dXJlKSk7CisgICAgLy8gV2UgY291bGQgZ28gZnVy
dGhlciwgYW5kIGVuc3VyZSB0aGF0IGlmIHRoZSBmdXR1cmVQb3NzaWJsZVN0cnVjdHVyZSBjb250
cmF2ZW5lcworICAgIC8vIHRoZSB2YWx1ZSwgdGhlbiB3ZSBjb3VsZCBjbGVhciBib3RoIG9mIHRo
b3NlIHRoaW5ncy4gQnV0IHRoYXQncyB1bmxpa2VseSB0byBoZWxwCisgICAgLy8gaW4gYW55IHJl
YWxpc3RpYyBzY2VuYXJpbywgc28gd2UgZG9uJ3QgZG8gaXQuIFNpbXBsZXIgaXMgYmV0dGVyLgor
CisgICAgaWYgKCEhbV90eXBlKSB7CisgICAgICAgIC8vIFRoZSB0eXBlIGlzIHN0aWxsIG5vbi1l
bXB0eS4gSXQgbWF5IGJlIHRoYXQgdGhlIG5ldyB0eXBlIHJlbmRlcnMKKyAgICAgICAgLy8gdGhl
IHZhbHVlIGVtcHR5IGJlY2F1c2UgaXQgY29udHJhdmVuZXMgdGhlIGNvbnN0YW50IHZhbHVlIHdl
IGhhZC4KKyAgICAgICAgaWYgKG1fdmFsdWUgJiYgIXZhbGlkYXRlVHlwZShtX3ZhbHVlKSkKKyAg
ICAgICAgICAgIGNsZWFyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgLy8g
VGhlIHR5cGUgaGFzIGJlZW4gcmVuZGVyZWQgZW1wdHkuIFRoYXQgbWVhbnMgdGhhdCB0aGUgdmFs
dWUgbXVzdCBub3cgYmUgaW52YWxpZCwKKyAgICAvLyBhcyB3ZWxsLgorICAgIEFTU0VSVCghbV92
YWx1ZSB8fCAhdmFsaWRhdGVUeXBlKG1fdmFsdWUpKTsKKyAgICBtX3ZhbHVlID0gSlNWYWx1ZSgp
OworfQorCit2b2lkIEFic3RyYWN0VmFsdWU6OmZpbHRlckFycmF5TW9kZXNCeVR5cGUoKQorewor
ICAgIGlmICghKG1fdHlwZSAmIFNwZWNDZWxsKSkKKyAgICAgICAgbV9hcnJheU1vZGVzID0gMDsK
KyAgICBlbHNlIGlmICghKG1fdHlwZSAmIH5TcGVjQXJyYXkpKQorICAgICAgICBtX2FycmF5TW9k
ZXMgJj0gQUxMX0FSUkFZX0FSUkFZX01PREVTOworICAgIGVsc2UgaWYgKCEobV90eXBlICYgU3Bl
Y0FycmF5KSkKKyAgICAgICAgbV9hcnJheU1vZGVzICY9IEFMTF9OT05fQVJSQVlfQVJSQVlfTU9E
RVM7Cit9CisKK2Jvb2wgQWJzdHJhY3RWYWx1ZTo6c2hvdWxkQmVDbGVhcigpIGNvbnN0Cit7Cisg
ICAgaWYgKG1fdHlwZSA9PSBTcGVjTm9uZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCisg
ICAgaWYgKCEobV90eXBlICYgflNwZWNDZWxsKQorICAgICAgICAmJiAoIW1fYXJyYXlNb2Rlcwor
ICAgICAgICAgICAgfHwgbV9jdXJyZW50S25vd25TdHJ1Y3R1cmUuaXNDbGVhcigpKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEFic3Ry
YWN0VmFsdWU6Om5vcm1hbGl6ZUNsYXJpdHkoKQoreworICAgIC8vIEl0J3MgdXNlZnVsIHRvIGJl
IGFibGUgdG8gcXVpY2tseSBjaGVjayBpZiBhbiBhYnN0cmFjdCB2YWx1ZSBpcyBjbGVhci4KKyAg
ICAvLyBUaGlzIG5vcm1hbGl6ZXMgZXZlcnl0aGluZyB0byBtYWtlIHRoYXQgZWFzeS4KKyAgICAK
KyAgICBpZiAoc2hvdWxkQmVDbGVhcigpKQorICAgICAgICBjbGVhcigpOworfQorCit2b2lkIEFi
c3RyYWN0VmFsdWU6OmNoZWNrQ29uc2lzdGVuY3koKSBjb25zdAoreworICAgIGlmICghKG1fdHlw
ZSAmIFNwZWNDZWxsKSkgeworICAgICAgICBBU1NFUlQobV9jdXJyZW50S25vd25TdHJ1Y3R1cmUu
aXNDbGVhcigpKTsKKyAgICAgICAgQVNTRVJUKG1fZnV0dXJlUG9zc2libGVTdHJ1Y3R1cmUuaXND
bGVhcigpKTsKKyAgICAgICAgQVNTRVJUKCFtX2FycmF5TW9kZXMpOworICAgIH0KKyAgICAKKyAg
ICBpZiAoaXNDbGVhcigpKQorICAgICAgICBBU1NFUlQoIW1fdmFsdWUpOworICAgIAorICAgIGlm
ICghIW1fdmFsdWUpCisgICAgICAgIEFTU0VSVChtZXJnZVNwZWN1bGF0aW9ucyhtX3R5cGUsIHNw
ZWN1bGF0aW9uRnJvbVZhbHVlKG1fdmFsdWUpKSA9PSBtX3R5cGUpOworICAgIAorICAgIC8vIE5v
dGUgdGhhdCBpdCdzIHBvc3NpYmxlIGZvciBhIHByZWRpY3Rpb24gbGlrZSAoRmluYWwsIFtdKS4g
VGhpcyByZWFsbHkgbWVhbnMgdGhhdAorICAgIC8vIHRoZSB2YWx1ZSBpcyBib3R0b20gYW5kIHRo
YXQgYW55IGNvZGUgdGhhdCB1c2VzIHRoZSB2YWx1ZSBpcyB1bnJlYWNoYWJsZS4gQnV0CisgICAg
Ly8gd2UgZG9uJ3Qgd2FudCB0byBnZXQgcGVkYW50aWMgYWJvdXQgdGhpcyBhcyBpdCB3b3VsZCBv
bmx5IGluY3JlYXNlIHRoZSBjb21wdXRhdGlvbmFsCisgICAgLy8gY29tcGxleGl0eSBvZiB0aGUg
Y29kZS4KIH0KIAogdm9pZCBBYnN0cmFjdFZhbHVlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNv
bnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUu
aAkocmV2aXNpb24gMTUxMTgzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDEzICs1Nyw3IEBAIHN0cnVjdCBBYnN0
cmFjdFZhbHVlIHsKICAgICAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOwogICAgIH0KICAgICAKLSAg
ICBib29sIGlzQ2xlYXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgYm9vbCByZXN1bHQgPSBtX3R5
cGUgPT0gU3BlY05vbmUgJiYgIW1fYXJyYXlNb2RlcyAmJiBtX2N1cnJlbnRLbm93blN0cnVjdHVy
ZS5pc0NsZWFyKCkgJiYgbV9mdXR1cmVQb3NzaWJsZVN0cnVjdHVyZS5pc0NsZWFyKCk7Ci0gICAg
ICAgIGlmIChyZXN1bHQpCi0gICAgICAgICAgICBBU1NFUlQoIW1fdmFsdWUpOwotICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgIH0KKyAgICBib29sIGlzQ2xlYXIoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgPT0gU3BlY05vbmU7IH0KICAgICAKICAgICB2b2lkIG1ha2VUb3AoKQogICAgIHsKQEAg
LTE5MCwzNiArMTg0LDkgQEAgc3RydWN0IEFic3RyYWN0VmFsdWUgewogICAgIAogICAgIHZvaWQg
ZmlsdGVyKEdyYXBoJiwgY29uc3QgU3RydWN0dXJlU2V0Jik7CiAgICAgCi0gICAgdm9pZCBmaWx0
ZXJBcnJheU1vZGVzKEFycmF5TW9kZXMgYXJyYXlNb2RlcykKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChhcnJheU1vZGVzKTsKLSAgICAgICAgCi0gICAgICAgIG1fdHlwZSAmPSBTcGVjQ2VsbDsKLSAg
ICAgICAgbV9hcnJheU1vZGVzICY9IGFycmF5TW9kZXM7Ci0gICAgICAgIAotICAgICAgICAvLyBJ
IGNvdWxkIGRvIG1vcmUgZmFuY3kgZmlsdGVyaW5nIGhlcmUuIEJ1dCBpdCBwcm9iYWJseSB3b24n
dCBtYWtlIGFueSBkaWZmZXJlbmNlLgotICAgICAgICAKLSAgICAgICAgY2hlY2tDb25zaXN0ZW5j
eSgpOwotICAgIH0KKyAgICB2b2lkIGZpbHRlckFycmF5TW9kZXMoQXJyYXlNb2RlcyBhcnJheU1v
ZGVzKTsKICAgICAKLSAgICB2b2lkIGZpbHRlcihTcGVjdWxhdGVkVHlwZSB0eXBlKQotICAgIHsK
LSAgICAgICAgaWYgKHR5cGUgPT0gU3BlY1RvcCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgbV90eXBlICY9IHR5cGU7Ci0gICAgICAgIAotICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRo
YXQgcHJpb3IgdG8gdGhpcyBmaWx0ZXIoKSBjYWxsIHdlIGhhZCwgc2F5LCAoRmluYWwsIFRPUCks
IGFuZAotICAgICAgICAvLyB0aGUgcGFzc2VkIHR5cGUgaXMgQXJyYXkuIEF0IHRoaXMgcG9pbnQg
d2UnbGwgaGF2ZSAoTm9uZSwgVE9QKS4gVGhlIGJlc3Qgd2F5Ci0gICAgICAgIC8vIHRvIGVuc3Vy
ZSB0aGF0IHRoZSBzdHJ1Y3R1cmUgZmlsdGVyaW5nIGRvZXMgdGhlIHJpZ2h0IHRoaW5nIGlzIHRv
IGZpbHRlciBvbgotICAgICAgICAvLyB0aGUgbmV3IHR5cGUgKE5vbmUpIHJhdGhlciB0aGFuIHRo
ZSBvbmUgcGFzc2VkIChBcnJheSkuCi0gICAgICAgIG1fY3VycmVudEtub3duU3RydWN0dXJlLmZp
bHRlcihtX3R5cGUpOwotICAgICAgICBtX2Z1dHVyZVBvc3NpYmxlU3RydWN0dXJlLmZpbHRlciht
X3R5cGUpOwotICAgICAgICAKLSAgICAgICAgZmlsdGVyQXJyYXlNb2Rlc0J5VHlwZSgpOwotICAg
ICAgICBmaWx0ZXJWYWx1ZUJ5VHlwZSgpOwotICAgICAgICAKLSAgICAgICAgY2hlY2tDb25zaXN0
ZW5jeSgpOwotICAgIH0KKyAgICB2b2lkIGZpbHRlcihTcGVjdWxhdGVkVHlwZSB0eXBlKTsKICAg
ICAKICAgICB2b2lkIGZpbHRlckJ5VmFsdWUoSlNWYWx1ZSB2YWx1ZSkKICAgICB7CkBAIC0yODAs
MjUgKzI0Nyw3IEBAIHN0cnVjdCBBYnN0cmFjdFZhbHVlIHsKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgY2hlY2tDb25zaXN0ZW5jeSgpIGNvbnN0Ci0gICAgewotICAg
ICAgICBpZiAoIShtX3R5cGUgJiBTcGVjQ2VsbCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChtX2N1
cnJlbnRLbm93blN0cnVjdHVyZS5pc0NsZWFyKCkpOwotICAgICAgICAgICAgQVNTRVJUKG1fZnV0
dXJlUG9zc2libGVTdHJ1Y3R1cmUuaXNDbGVhcigpKTsKLSAgICAgICAgICAgIEFTU0VSVCghbV9h
cnJheU1vZGVzKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKGlzQ2xlYXIoKSkK
LSAgICAgICAgICAgIEFTU0VSVCghbV92YWx1ZSk7Ci0gICAgICAgIAotICAgICAgICBpZiAoISFt
X3ZhbHVlKQotICAgICAgICAgICAgQVNTRVJUKG1lcmdlU3BlY3VsYXRpb25zKG1fdHlwZSwgc3Bl
Y3VsYXRpb25Gcm9tVmFsdWUobV92YWx1ZSkpID09IG1fdHlwZSk7Ci0gICAgICAgIAotICAgICAg
ICAvLyBOb3RlIHRoYXQgaXQncyBwb3NzaWJsZSBmb3IgYSBwcmVkaWN0aW9uIGxpa2UgKEZpbmFs
LCBbXSkuIFRoaXMgcmVhbGx5IG1lYW5zIHRoYXQKLSAgICAgICAgLy8gdGhlIHZhbHVlIGlzIGJv
dHRvbSBhbmQgdGhhdCBhbnkgY29kZSB0aGF0IHVzZXMgdGhlIHZhbHVlIGlzIHVucmVhY2hhYmxl
LiBCdXQKLSAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBnZXQgcGVkYW50aWMgYWJvdXQgdGhp
cyBhcyBpdCB3b3VsZCBvbmx5IGluY3JlYXNlIHRoZSBjb21wdXRhdGlvbmFsCi0gICAgICAgIC8v
IGNvbXBsZXhpdHkgb2YgdGhlIGNvZGUuCi0gICAgfQorICAgIHZvaWQgY2hlY2tDb25zaXN0ZW5j
eSgpIGNvbnN0OwogICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAg
IApAQCAtMzE0LDcgKzI2Myw3IEBAIHN0cnVjdCBBYnN0cmFjdFZhbHVlIHsKICAgICAvLyAgICB5
ID0geC5mOwogICAgIC8vCiAgICAgLy8gICAgV2hlcmUgeCB3aWxsIGxhdGVyIGhhdmUgYSBuZXcg
cHJvcGVydHkgYWRkZWQgdG8gaXQsICdnJy4gQmVjYXVzZSBvZiB0aGUKLSAgICAvLyAgICBrbm93
biBidXQgbm90LXlldC1leGVjdXRlZCBwcm9wZXJ0eSBhZGRpdGlvbiwgeCdzIGN1cnJlbnRseSBz
dHJ1Y3R1cmUgd2lsbAorICAgIC8vICAgIGtub3duIGJ1dCBub3QteWV0LWV4ZWN1dGVkIHByb3Bl
cnR5IGFkZGl0aW9uLCB4J3MgY3VycmVudCBzdHJ1Y3R1cmUgd2lsbAogICAgIC8vICAgIG5vdCBi
ZSB3YXRjaHBvaW50YWJsZTsgaGVuY2Ugd2UgaGF2ZSBubyB3YXkgb2Ygc3RhdGljYWxseSBib3Vu
ZGluZyB0aGUgc2V0CiAgICAgLy8gICAgb2YgcG9zc2libGUgc3RydWN0dXJlcyB0aGF0IHggbWF5
IGhhdmUgaWYgYSBjbG9iYmVyaW5nIGV2ZW50IGhhcHBlbnMuIFNvLAogICAgIC8vICAgIHgncyBt
X2N1cnJlbnRLbm93blN0cnVjdHVyZSB3aWxsIGJlIHdoYXRldmVyIHN0cnVjdHVyZSB3ZSBjaGVj
ayB0byBnZXQKQEAgLTQxMCwzNiArMzU5LDEyIEBAIHByaXZhdGU6CiAgICAgfQogICAgIAogICAg
IHZvaWQgc2V0RnV0dXJlUG9zc2libGVTdHJ1Y3R1cmUoR3JhcGgmLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSk7Ci0gICAgdm9pZCBmaWx0ZXJGdXR1cmVQb3NzaWJsZVN0cnVjdHVyZShHcmFwaCYsIFN0
cnVjdHVyZSogc3RydWN0dXJlKTsKIAotICAgIC8vIFdlIGNvdWxkIGdvIGZ1cnRoZXIsIGFuZCBl
bnN1cmUgdGhhdCBpZiB0aGUgZnV0dXJlUG9zc2libGVTdHJ1Y3R1cmUgY29udHJhdmVuZXMKLSAg
ICAvLyB0aGUgdmFsdWUsIHRoZW4gd2UgY291bGQgY2xlYXIgYm90aCBvZiB0aG9zZSB0aGluZ3Mu
IEJ1dCB0aGF0J3MgdW5saWtlbHkgdG8gaGVscAotICAgIC8vIGluIGFueSByZWFsaXN0aWMgc2Nl
bmFyaW8sIHNvIHdlIGRvbid0IGRvIGl0LiBTaW1wbGVyIGlzIGJldHRlci4KLSAgICB2b2lkIGZp
bHRlclZhbHVlQnlUeXBlKCkKLSAgICB7Ci0gICAgICAgIGlmICghIW1fdHlwZSkgewotICAgICAg
ICAgICAgLy8gVGhlIHR5cGUgaXMgc3RpbGwgbm9uLWVtcHR5LiBUaGlzIGltcGxpZXMgdGhhdCBy
ZWdhcmRsZXNzIG9mIHdoYXQgZmlsdGVyaW5nCi0gICAgICAgICAgICAvLyB3YXMgZG9uZSwgd2Ug
ZWl0aGVyIGRpZG4ndCBoYXZlIGEgdmFsdWUgdG8gYmVnaW4gd2l0aCwgb3IgdGhhdCB2YWx1ZSBp
cyBzdGlsbAotICAgICAgICAgICAgLy8gdmFsaWQuCi0gICAgICAgICAgICBBU1NFUlQoIW1fdmFs
dWUgfHwgdmFsaWRhdGVUeXBlKG1fdmFsdWUpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotICAgICAgICAKLSAgICAgICAgLy8gVGhlIHR5cGUgaGFzIGJlZW4gcmVuZGVyZWQgZW1w
dHkuIFRoYXQgbWVhbnMgdGhhdCB0aGUgdmFsdWUgbXVzdCBub3cgYmUgaW52YWxpZCwKLSAgICAg
ICAgLy8gYXMgd2VsbC4KLSAgICAgICAgQVNTRVJUKCFtX3ZhbHVlIHx8ICF2YWxpZGF0ZVR5cGUo
bV92YWx1ZSkpOwotICAgICAgICBtX3ZhbHVlID0gSlNWYWx1ZSgpOwotICAgIH0KKyAgICB2b2lk
IGZpbHRlclZhbHVlQnlUeXBlKCk7CisgICAgdm9pZCBmaWx0ZXJBcnJheU1vZGVzQnlUeXBlKCk7
CiAgICAgCi0gICAgdm9pZCBmaWx0ZXJBcnJheU1vZGVzQnlUeXBlKCkKLSAgICB7Ci0gICAgICAg
IGlmICghKG1fdHlwZSAmIFNwZWNDZWxsKSkKLSAgICAgICAgICAgIG1fYXJyYXlNb2RlcyA9IDA7
Ci0gICAgICAgIGVsc2UgaWYgKCEobV90eXBlICYgflNwZWNBcnJheSkpCi0gICAgICAgICAgICBt
X2FycmF5TW9kZXMgJj0gQUxMX0FSUkFZX0FSUkFZX01PREVTOwotICAgICAgICBlbHNlIGlmICgh
KG1fdHlwZSAmIFNwZWNBcnJheSkpCi0gICAgICAgICAgICBtX2FycmF5TW9kZXMgJj0gQUxMX05P
Tl9BUlJBWV9BUlJBWV9NT0RFUzsKLSAgICB9CisgICAgYm9vbCBzaG91bGRCZUNsZWFyKCkgY29u
c3Q7CisgICAgdm9pZCBub3JtYWxpemVDbGFyaXR5KCk7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6REZHCg==
</data>
<flag name="review"
          id="225220"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>