<?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>96708</bug_id>
          
          <creation_ts>2012-09-13 17:04:34 -0700</creation_ts>
          <short_desc>Remove the Zapped BlockState</short_desc>
          <delta_ts>2012-09-14 00:06:04 -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>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>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>720124</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-09-13 17:04:34 -0700</bug_when>
    <thetext>The Zapped block state is rather confusing. It indicates that a block is in one of two different states that we can&apos;t tell the difference between:

1) I have run all destructors of things that are zapped, and I have not allocated any more objects. This block is ready for reclaiming if you so choose.
2) I have run all the destructors of things that are zapped, but I have allocated more stuff since then, so it is not safe to reclaim this block.

This state adds a lot of complexity to our state transition model for MarkedBlocks. We should get rid of it. We can replace this state by making sure mark bits represent all of the liveness information we need when running our conservative stack scan. Instead of zapping the free list when canonicalizing cell liveness data prior to a conservative scan, we can instead mark all objects in the block except for those in the free list. This should incur no performance penalty since we&apos;re doing it on a very small O(1) number of blocks at the beginning of the collection. 

For the time being we still need to use zapping to determine whether we have run an object&apos;s destructor or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720145</commentid>
    <comment_count>1</comment_count>
      <attachid>164009</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-09-13 17:23:02 -0700</bug_when>
    <thetext>Created attachment 164009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720203</commentid>
    <comment_count>2</comment_count>
      <attachid>164009</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-13 18:29:17 -0700</bug_when>
    <thetext>Comment on attachment 164009
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720383</commentid>
    <comment_count>3</comment_count>
      <attachid>164009</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 00:06:01 -0700</bug_when>
    <thetext>Comment on attachment 164009
Patch

Clearing flags on attachment: 164009

Committed r128563: &lt;http://trac.webkit.org/changeset/128563&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720384</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 00:06:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164009</attachid>
            <date>2012-09-13 17:23:02 -0700</date>
            <delta_ts>2012-09-14 00:06:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96708-20120913172235.patch</filename>
            <type>text/plain</type>
            <size>13428</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI4NTMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBA
CisyMDEyLTA5LTEzICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIHRoZSBaYXBwZWQgQmxvY2tTdGF0ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY3MDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgWmFwcGVkIGJsb2NrIHN0YXRlIGlzIHJh
dGhlciBjb25mdXNpbmcuIEl0IGluZGljYXRlcyB0aGF0IGEgYmxvY2sgaXMgaW4gb25lIG9mIHR3
byBkaWZmZXJlbnQgc3RhdGVzIHRoYXQgd2UgCisgICAgICAgIGNhbid0IHRlbGwgdGhlIGRpZmZl
cmVuY2UgYmV0d2VlbjoKKworICAgICAgICAxKSBJIGhhdmUgcnVuIGFsbCBkZXN0cnVjdG9ycyBv
ZiB0aGluZ3MgdGhhdCBhcmUgemFwcGVkLCBhbmQgSSBoYXZlIG5vdCBhbGxvY2F0ZWQgYW55IG1v
cmUgb2JqZWN0cy4gVGhpcyBibG9jayAKKyAgICAgICAgICAgaXMgcmVhZHkgZm9yIHJlY2xhaW1p
bmcgaWYgeW91IHNvIGNob29zZS4KKyAgICAgICAgMikgSSBoYXZlIHJ1biBhbGwgdGhlIGRlc3Ry
dWN0b3JzIG9mIHRoaW5ncyB0aGF0IGFyZSB6YXBwZWQsIGJ1dCBJIGhhdmUgYWxsb2NhdGVkIG1v
cmUgc3R1ZmYgc2luY2UgdGhlbiwgc28gaXQgCisgICAgICAgICAgIGlzIG5vdCBzYWZlIHRvIHJl
Y2xhaW0gdGhpcyBibG9jay4KKworICAgICAgICBUaGlzIHN0YXRlIGFkZHMgYSBsb3Qgb2YgY29t
cGxleGl0eSB0byBvdXIgc3RhdGUgdHJhbnNpdGlvbiBtb2RlbCBmb3IgTWFya2VkQmxvY2tzLiBX
ZSBzaG91bGQgZ2V0IHJpZCBvZiBpdC4gCisgICAgICAgIFdlIGNhbiByZXBsYWNlIHRoaXMgc3Rh
dGUgYnkgbWFraW5nIHN1cmUgbWFyayBiaXRzIHJlcHJlc2VudCBhbGwgb2YgdGhlIGxpdmVuZXNz
IGluZm9ybWF0aW9uIHdlIG5lZWQgd2hlbiBydW5uaW5nIAorICAgICAgICBvdXIgY29uc2VydmF0
aXZlIHN0YWNrIHNjYW4uIEluc3RlYWQgb2YgemFwcGluZyB0aGUgZnJlZSBsaXN0IHdoZW4gY2Fu
b25pY2FsaXppbmcgY2VsbCBsaXZlbmVzcyBkYXRhIHByaW9yIHRvIAorICAgICAgICBhIGNvbnNl
cnZhdGl2ZSBzY2FuLCB3ZSBjYW4gaW5zdGVhZCBtYXJrIGFsbCBvYmplY3RzIGluIHRoZSBibG9j
ayBleGNlcHQgZm9yIHRob3NlIGluIHRoZSBmcmVlIGxpc3QuIFRoaXMgc2hvdWxkIAorICAgICAg
ICBpbmN1ciBubyBwZXJmb3JtYW5jZSBwZW5hbHR5IHNpbmNlIHdlJ3JlIGRvaW5nIGl0IG9uIGEg
dmVyeSBzbWFsbCBPKDEpIG51bWJlciBvZiBibG9ja3MgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUg
Y29sbGVjdGlvbi4gCisKKyAgICAgICAgRm9yIHRoZSB0aW1lIGJlaW5nIHdlIHN0aWxsIG5lZWQg
dG8gdXNlIHphcHBpbmcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgaGF2ZSBydW4gYW4gb2JqZWN0
J3MgZGVzdHJ1Y3RvciBvciBub3QuCisKKyAgICAgICAgKiBoZWFwL01hcmtlZEFsbG9jYXRvci5j
cHA6CisgICAgICAgIChKU0M6Ok1hcmtlZEFsbG9jYXRvcjo6dHJ5QWxsb2NhdGVIZWxwZXIpOiBS
ZW5hbWluZyBzdHVmZi4KKyAgICAgICAgKiBoZWFwL01hcmtlZEFsbG9jYXRvci5oOiBSZW5hbWVk
IHphcEZyZWVMaXN0IHRvIGNhbm9uaWNhbGl6ZUNlbGxMaXZlbmVzc0RhdGEgdG8gbWF0Y2guCisg
ICAgICAgIChNYXJrZWRBbGxvY2F0b3IpOgorICAgICAgICAoSlNDOjpNYXJrZWRBbGxvY2F0b3I6
OmNhbm9uaWNhbGl6ZUNlbGxMaXZlbmVzc0RhdGEpOiBTYW1lIGFzIG9sZCB6YXBGcmVlTGlzdCwg
YnV0IGp1c3QgY2FsbCBjYW5vbmljYWxpemUgaW5zdGVhZC4KKyAgICAgICAgKiBoZWFwL01hcmtl
ZEJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6TWFya2VkQmxvY2s6OnNwZWNpYWxpemVkU3dlZXAp
OiBSZW1vdmUgdGhlIGNoZWNrIGZvciBaYXBwZWQgYmxvY2sgc3R1ZmYuIEFsc28gY2hhbmdlIHRo
ZSBibG9jayBzdGF0ZSB0byBNYXJrZWQgCisgICAgICAgIGluc3RlYWQgb2YgWmFwcGVkIGlmIHdl
J3JlIG5vdCBwcm9kdWNpbmcgYSBGcmVlTGlzdCBzaW5jZSB0aGF0J3MgdGhlIG9ubHkgb3RoZXIg
c3RhdGUgdGhhdCByZWFsbHkgbWFrZXMgYW55IHNlbnNlLgorICAgICAgICAoSlNDOjpNYXJrZWRC
bG9jazo6c3dlZXBIZWxwZXIpOiBSZW1vdmUgWmFwcGVkIHJlbGF0ZWQgY29kZS4KKyAgICAgICAg
KFNldEFsbE1hcmtzRnVuY3Rvcik6IEZ1bmN0b3IgdG8gc2V0IGFsbCB0aGUgbWFyayBiaXRzIGlu
IHRoZSBibG9jayBzaW5jZSB0aGVyZSdzIG5vdCBhIHNpbXBsZSBmdW5jdGlvbiB0byBjYWxsIG9u
IAorICAgICAgICB0aGUgQml0bWFwIGl0c2VsZi4KKyAgICAgICAgKEpTQzo6U2V0QWxsTWFya3NG
dW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6Ok1hcmtl
ZEJsb2NrOjpjYW5vbmljYWxpemVDZWxsTGl2ZW5lc3NEYXRhKTogUmVtb3ZlIGFsbCB0aGUgc3R1
ZmYgZm9yIFphcHBlZC4gRm9yIEZyZWVMaXN0ZWQsIHNldCBhbGwgdGhlIG1hcmsgYml0cworICAg
ICAgICBhbmQgdGhlbiBjbGVhciB0aGUgb25lcyBmb3IgdGhlIG9iamVjdHMgaW4gdGhlIEZyZWVM
aXN0LiBUaGlzIGVuc3VyZXMgdGhhdCBvbmx5IHRoZSB0aGluZ3MgdGhhdCB3ZXJlIGluIHRoZSBG
cmVlTGlzdCAKKyAgICAgICAgYXJlIGNvbnNpZGVyZWQgdG8gYmUgZGVhZCBieSB0aGUgY29uc2Vy
dmF0aXZlIHNjYW4sIGp1c3QgbGlrZSBpZiB3ZSB3ZXJlIHRvIGhhdmUgemFwcGVkIHRoZSBGcmVl
TGlzdCBsaWtlIGJlZm9yZS4gCisgICAgICAgICogaGVhcC9NYXJrZWRCbG9jay5oOgorICAgICAg
ICAoTWFya2VkQmxvY2spOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Y2xlYXJNYXJrZWQp
OiBBZGQgZnVuY3Rpb24gdG8gY2xlYXIgaW5kaXZpZHVhbCBtYXJrIGJpdHMsIHNpbmNlIHdlIG5l
ZWQgdGhhdCBmdW5jdGlvbmFsaXR5IG5vdy4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6
Ok1hcmtlZEJsb2NrOjppc0xpdmUpOiBSZW1vdmUgY29kZSBmb3IgWmFwcGVkIHN0dWZmLiBNYXJr
ZWQgaGFuZGxlcyBhbGwgaW50ZXJlc3RpbmcgY2FzZXMgbm93LgorICAgICAgICAoSlNDOjpNYXJr
ZWRCbG9jazo6Zm9yRWFjaENlbGwpOiBBZGQgbmV3IGl0ZXJhdG9yIGZ1bmN0aW9uIHRoYXQgaXRl
cmF0ZXMgb3ZlciBhbGwgY2VsbHMgaW4gdGhlIGJsb2NrLCByZWdhcmRsZXNzIG9mIAorICAgICAg
ICB3aGV0aGVyIHRoZXkncmUgbGl2ZSBvciBhIGRlYWQuCisgICAgICAgICogaGVhcC9NYXJrZWRT
cGFjZS5jcHA6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpjYW5vbmljYWxpemVDZWxsTGl2
ZW5lc3NEYXRhKTogQ2hhbmdlIHRvIGNhbGwgdGhlIHJlbmFtZWQgY2Fub25pY2FsaXplIGZ1bmN0
aW9uLiAKKwogMjAxMi0wOS0xMyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbmFtZSBmb3JFYWNoQ2VsbCB0byBmb3JFYWNoTGl2ZUNlbGwKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9jYXRvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQWxsb2NhdG9yLmNwcAko
cmV2aXNpb24gMTI4NDk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQWxs
b2NhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBpbmxpbmUgdm9pZCog
TWFya2VkQWxsb2NhdG9yOjp0cnlBbGxvY2F0CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IGlmIChieXRlcyA+IGJsb2NrLT5jZWxsU2l6ZSgpKSB7Ci0gICAgICAgICAgICAgICAgYmxvY2st
PnphcEZyZWVMaXN0KGZyZWVMaXN0KTsKKyAgICAgICAgICAgICAgICBibG9jay0+Y2Fub25pY2Fs
aXplQ2VsbExpdmVuZXNzRGF0YShmcmVlTGlzdCk7CiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtl
ZEFsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtlZEFsbG9jYXRvci5oCShyZXZpc2lvbiAxMjg0OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBA
QCBjbGFzcyBNYXJrZWRBbGxvY2F0b3IgewogcHVibGljOgogICAgIE1hcmtlZEFsbG9jYXRvcigp
OwogICAgIHZvaWQgcmVzZXQoKTsKLSAgICB2b2lkIHphcEZyZWVMaXN0KCk7CisgICAgdm9pZCBj
YW5vbmljYWxpemVDZWxsTGl2ZW5lc3NEYXRhKCk7CiAgICAgc2l6ZV90IGNlbGxTaXplKCkgeyBy
ZXR1cm4gbV9jZWxsU2l6ZTsgfQogICAgIGJvb2wgY2VsbHNOZWVkRGVzdHJ1Y3Rpb24oKSB7IHJl
dHVybiBtX2NlbGxzTmVlZERlc3RydWN0aW9uOyB9CiAgICAgYm9vbCBvbmx5Q29udGFpbnNTdHJ1
Y3R1cmVzKCkgeyByZXR1cm4gbV9vbmx5Q29udGFpbnNTdHJ1Y3R1cmVzOyB9CkBAIC05MiwxNCAr
OTIsMTQgQEAgaW5saW5lIHZvaWQgTWFya2VkQWxsb2NhdG9yOjpyZXNldCgpCiAgICAgbV9ibG9j
a3NUb1N3ZWVwID0gbV9ibG9ja0xpc3QuaGVhZCgpOwogfQogCi1pbmxpbmUgdm9pZCBNYXJrZWRB
bGxvY2F0b3I6OnphcEZyZWVMaXN0KCkKK2lubGluZSB2b2lkIE1hcmtlZEFsbG9jYXRvcjo6Y2Fu
b25pY2FsaXplQ2VsbExpdmVuZXNzRGF0YSgpCiB7CiAgICAgaWYgKCFtX2N1cnJlbnRCbG9jaykg
ewogICAgICAgICBBU1NFUlQoIW1fZnJlZUxpc3QuaGVhZCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgCi0gICAgbV9jdXJyZW50QmxvY2stPnphcEZyZWVMaXN0KG1fZnJlZUxpc3QpOwor
ICAgIG1fY3VycmVudEJsb2NrLT5jYW5vbmljYWxpemVDZWxsTGl2ZW5lc3NEYXRhKG1fZnJlZUxp
c3QpOwogICAgIG1fY3VycmVudEJsb2NrID0gMDsKICAgICBtX2ZyZWVMaXN0ID0gTWFya2VkQmxv
Y2s6OkZyZWVMaXN0KCk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJr
ZWRCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFy
a2VkQmxvY2suY3BwCShyZXZpc2lvbiAxMjg0OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrZWRCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDggKzgxLDYgQEAgTWFy
a2VkQmxvY2s6OkZyZWVMaXN0IE1hcmtlZEJsb2NrOjpzcGVjaQogICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgSlNDZWxsKiBjZWxsID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8SlNDZWxs
Kj4oJmF0b21zKClbaV0pOwotICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PSBaYXBwZWQgJiYgIWNl
bGwtPmlzWmFwcGVkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAoZGVz
dHJ1Y3RvckNhbGxOZWVkZWQgJiYgYmxvY2tTdGF0ZSAhPSBOZXcpCiAgICAgICAgICAgICBjYWxs
RGVzdHJ1Y3RvcihjZWxsKTsKQEAgLTk1LDcgKzkzLDcgQEAgTWFya2VkQmxvY2s6OkZyZWVMaXN0
IE1hcmtlZEJsb2NrOjpzcGVjaQogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9zdGF0ZSA9ICgo
c3dlZXBNb2RlID09IFN3ZWVwVG9GcmVlTGlzdCkgPyBGcmVlTGlzdGVkIDogWmFwcGVkKTsKKyAg
ICBtX3N0YXRlID0gKChzd2VlcE1vZGUgPT0gU3dlZXBUb0ZyZWVMaXN0KSA/IEZyZWVMaXN0ZWQg
OiBNYXJrZWQpOwogICAgIHJldHVybiBGcmVlTGlzdChoZWFkLCBjb3VudCAqIGNlbGxTaXplKCkp
OwogfQogCkBAIC0xMzIsMTggKzEzMCwyMSBAQCBNYXJrZWRCbG9jazo6RnJlZUxpc3QgTWFya2Vk
QmxvY2s6OnN3ZWVwCiAgICAgICAgIHJldHVybiBzd2VlcE1vZGUgPT0gU3dlZXBUb0ZyZWVMaXN0
CiAgICAgICAgICAgICA/IHNwZWNpYWxpemVkU3dlZXA8TWFya2VkLCBTd2VlcFRvRnJlZUxpc3Qs
IGRlc3RydWN0b3JDYWxsTmVlZGVkPigpCiAgICAgICAgICAgICA6IHNwZWNpYWxpemVkU3dlZXA8
TWFya2VkLCBTd2VlcE9ubHksIGRlc3RydWN0b3JDYWxsTmVlZGVkPigpOwotICAgIGNhc2UgWmFw
cGVkOgotICAgICAgICBBU1NFUlQoIW1fb25seUNvbnRhaW5zU3RydWN0dXJlcyB8fCBoZWFwKCkt
PmlzU2FmZVRvU3dlZXBTdHJ1Y3R1cmVzKCkpOwotICAgICAgICByZXR1cm4gc3dlZXBNb2RlID09
IFN3ZWVwVG9GcmVlTGlzdAotICAgICAgICAgICAgPyBzcGVjaWFsaXplZFN3ZWVwPFphcHBlZCwg
U3dlZXBUb0ZyZWVMaXN0LCBkZXN0cnVjdG9yQ2FsbE5lZWRlZD4oKQotICAgICAgICAgICAgOiBz
cGVjaWFsaXplZFN3ZWVwPFphcHBlZCwgU3dlZXBPbmx5LCBkZXN0cnVjdG9yQ2FsbE5lZWRlZD4o
KTsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gRnJlZUxp
c3QoKTsKIH0KIAotdm9pZCBNYXJrZWRCbG9jazo6emFwRnJlZUxpc3QoY29uc3QgRnJlZUxpc3Qm
IGZyZWVMaXN0KQorY2xhc3MgU2V0QWxsTWFya3NGdW5jdG9yIDogcHVibGljIE1hcmtlZEJsb2Nr
OjpWb2lkRnVuY3RvciB7CitwdWJsaWM6CisgICAgdm9pZCBvcGVyYXRvcigpKEpTQ2VsbCogY2Vs
bCkKKyAgICB7CisgICAgICAgIE1hcmtlZEJsb2NrOjpibG9ja0ZvcihjZWxsKS0+c2V0TWFya2Vk
KGNlbGwpOworICAgIH0KK307CisKK3ZvaWQgTWFya2VkQmxvY2s6OmNhbm9uaWNhbGl6ZUNlbGxM
aXZlbmVzc0RhdGEoY29uc3QgRnJlZUxpc3QmIGZyZWVMaXN0KQogewogICAgIEhFQVBfTE9HX0JM
T0NLX1NUQVRFX1RSQU5TSVRJT04odGhpcyk7CiAgICAgRnJlZUNlbGwqIGhlYWQgPSBmcmVlTGlz
dC5oZWFkOwpAQCAtMTU2LDQwICsxNTcsMjYgQEAgdm9pZCBNYXJrZWRCbG9jazo6emFwRnJlZUxp
c3QoY29uc3QgRnJlZQogICAgICAgICAvLyBIZW5jZSBpZiB0aGUgYmxvY2sgaXMgTWFya2VkIHdl
IG5lZWQgdG8gbGVhdmUgaXQgTWFya2VkLgogICAgICAgICAKICAgICAgICAgQVNTRVJUKCFoZWFk
KTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgaWYgKG1fc3Rh
dGUgPT0gWmFwcGVkKSB7Ci0gICAgICAgIC8vIElmIHRoZSBibG9jayBpcyBpbiB0aGUgWmFwcGVk
IHN0YXRlIHRoZW4gd2Uga25vdyB0aGF0IHNvbWVvbmUgYWxyZWFkeQotICAgICAgICAvLyB6YXBw
ZWQgaXQgZm9yIHVzLiBUaGlzIGNvdWxkIG5vdCBoYXZlIGhhcHBlbmVkIGR1cmluZyBhIEdDLCBi
dXQgbWlnaHQKLSAgICAgICAgLy8gYmUgdGhlIHJlc3VsdCBvZiBzb21lb25lIGhhdmluZyBkb25l
IGEgR0Mgc2NhbiB0byBwZXJmb3JtIHNvbWUgb3BlcmF0aW9uCi0gICAgICAgIC8vIG92ZXIgYWxs
IGxpdmUgb2JqZWN0cyAob3IgYWxsIGxpdmUgYmxvY2tzKS4gSXQgYWxzbyBtZWFucyB0aGF0IHNv
bWVib2R5Ci0gICAgICAgIC8vIGhhZCBhbGxvY2F0ZWQgaW4gdGhpcyBibG9jayBzaW5jZSB0aGUg
bGFzdCBHQywgc3dlcHQgYWxsIGRlYWQgb2JqZWN0cwotICAgICAgICAvLyBvbnRvIHRoZSBmcmVl
IGxpc3QsIGxlZnQgdGhlIGJsb2NrIGluIHRoZSBGcmVlTGlzdGVkIHN0YXRlLCB0aGVuIHRoZSBo
ZWFwCi0gICAgICAgIC8vIHNjYW4gaGFwcGVuZWQsIGFuZCBjYW5vbmljYWxpemVkIHRoZSBibG9j
aywgbGVhZGluZyB0byBhbGwgZGVhZCBvYmplY3RzCi0gICAgICAgIC8vIGJlaW5nIHphcHBlZC4g
VGhlcmVmb3JlLCBpdCBpcyBzYWZlIGZvciB1cyB0byBzaW1wbHkgZG8gbm90aGluZywgc2luY2UK
LSAgICAgICAgLy8gZGVhZCBvYmplY3RzIHdpbGwgaGF2ZSAwIGluIHRoZWlyIHZ0YWJsZXMgYW5k
IGxpdmUgb2JqZWN0cyB3aWxsIGhhdmUKLSAgICAgICAgLy8gbm9uLXplcm8gdnRhYmxlcywgd2hp
Y2ggaXMgY29uc2lzdGVudCB3aXRoIHRoZSBibG9jayBiZWluZyB6YXBwZWQuCi0gICAgICAgIAot
ICAgICAgICBBU1NFUlQoIWhlYWQpOwotICAgICAgICAKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICAKKyAgIAogICAgIEFTU0VSVChtX3N0YXRlID09IEZyZWVMaXN0ZWQpOwogICAgIAogICAg
IC8vIFJvbGwgYmFjayB0byBhIGNvaGVyZW50IHN0YXRlIGZvciBIZWFwIGludHJvc3BlY3Rpb24u
IENlbGxzIG5ld2x5CiAgICAgLy8gYWxsb2NhdGVkIGZyb20gb3VyIGZyZWUgbGlzdCBhcmUgbm90
IGN1cnJlbnRseSBtYXJrZWQsIHNvIHdlIG5lZWQgYW5vdGhlcgotICAgIC8vIHdheSB0byB0ZWxs
IHdoYXQncyBsaXZlIHZzIGRlYWQuIFdlIHVzZSB6YXBwaW5nIGZvciB0aGF0LgorICAgIC8vIHdh
eSB0byB0ZWxsIHdoYXQncyBsaXZlIHZzIGRlYWQuIAogICAgIAorICAgIFNldEFsbE1hcmtzRnVu
Y3RvciBmdW5jdG9yOworICAgIGZvckVhY2hDZWxsKGZ1bmN0b3IpOworCiAgICAgRnJlZUNlbGwq
IG5leHQ7CiAgICAgZm9yIChGcmVlQ2VsbCogY3VycmVudCA9IGhlYWQ7IGN1cnJlbnQ7IGN1cnJl
bnQgPSBuZXh0KSB7CiAgICAgICAgIG5leHQgPSBjdXJyZW50LT5uZXh0OwogICAgICAgICByZWlu
dGVycHJldF9jYXN0PEpTQ2VsbCo+KGN1cnJlbnQpLT56YXAoKTsKKyAgICAgICAgY2xlYXJNYXJr
ZWQoY3VycmVudCk7CiAgICAgfQogICAgIAotICAgIG1fc3RhdGUgPSBaYXBwZWQ7CisgICAgbV9z
dGF0ZSA9IE1hcmtlZDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHJldmlzaW9uIDEyODQ5OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEz
Niw3ICsxMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgLy8gY2VsbCBsaXZlbmVzcyBk
YXRhLiBUbyByZXN0b3JlIGFjY3VyYXRlIGNlbGwgbGl2ZW5lc3MgZGF0YSwgY2FsbCBvbmUKICAg
ICAgICAgLy8gb2YgdGhlc2UgZnVuY3Rpb25zOgogICAgICAgICB2b2lkIGRpZENvbnN1bWVGcmVl
TGlzdCgpOyAvLyBDYWxsIHRoaXMgb25jZSB5b3UndmUgYWxsb2NhdGVkIGFsbCB0aGUgaXRlbXMg
aW4gdGhlIGZyZWUgbGlzdC4KLSAgICAgICAgdm9pZCB6YXBGcmVlTGlzdChjb25zdCBGcmVlTGlz
dCYpOyAvLyBDYWxsIHRoaXMgdG8gdW5kbyB0aGUgZnJlZSBsaXN0LgorICAgICAgICB2b2lkIGNh
bm9uaWNhbGl6ZUNlbGxMaXZlbmVzc0RhdGEoY29uc3QgRnJlZUxpc3QmKTsKIAogICAgICAgICB2
b2lkIGNsZWFyTWFya3MoKTsKICAgICAgICAgc2l6ZV90IG1hcmtDb3VudCgpOwpAQCAtMTU0LDcg
KzE1NCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIGlzTGl2ZShjb25zdCBKU0Nl
bGwqKTsKICAgICAgICAgYm9vbCBpc0xpdmVDZWxsKGNvbnN0IHZvaWQqKTsKICAgICAgICAgdm9p
ZCBzZXRNYXJrZWQoY29uc3Qgdm9pZCopOwotICAgICAgICAKKyAgICAgICAgdm9pZCBjbGVhck1h
cmtlZChjb25zdCB2b2lkKik7CisKICAgICAgICAgYm9vbCBuZWVkc1N3ZWVwaW5nKCk7CiAKICNp
ZiBFTkFCTEUoR0dDKQpAQCAtMTg1LDEzICsxODYsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHRlbXBsYXRlIDxpbnQgc2l6ZT4gaW5saW5lIHZvaWQgZ2F0aGVyRGlydHlDZWxsc1dpdGhT
aXplKERpcnR5Q2VsbFZlY3RvciYpOwogI2VuZGlmCiAKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIEZ1bmN0b3I+IHZvaWQgZm9yRWFjaENlbGwoRnVuY3RvciYpOwogICAgICAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gdm9pZCBmb3JFYWNoTGl2ZUNlbGwoRnVuY3RvciYpOwogICAg
ICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gdm9pZCBmb3JFYWNoRGVhZENlbGwoRnVu
Y3RvciYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBhdG9t
QWxpZ25tZW50TWFzayA9IGF0b21TaXplIC0gMTsgLy8gYXRvbVNpemUgbXVzdCBiZSBhIHBvd2Vy
IG9mIHR3by4KIAotICAgICAgICBlbnVtIEJsb2NrU3RhdGUgeyBOZXcsIEZyZWVMaXN0ZWQsIEFs
bG9jYXRlZCwgTWFya2VkLCBaYXBwZWQgfTsKKyAgICAgICAgZW51bSBCbG9ja1N0YXRlIHsgTmV3
LCBGcmVlTGlzdGVkLCBBbGxvY2F0ZWQsIE1hcmtlZCB9OwogICAgICAgICB0ZW1wbGF0ZTxib29s
IGRlc3RydWN0b3JDYWxsTmVlZGVkPiBGcmVlTGlzdCBzd2VlcEhlbHBlcihTd2VlcE1vZGUgPSBT
d2VlcE9ubHkpOwogCiAgICAgICAgIHR5cGVkZWYgY2hhciBBdG9tW2F0b21TaXplXTsKQEAgLTM2
NCwyMSArMzY2LDE4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBtX21hcmtzLnNldChhdG9t
TnVtYmVyKHApKTsKICAgICB9CiAKKyAgICBpbmxpbmUgdm9pZCBNYXJrZWRCbG9jazo6Y2xlYXJN
YXJrZWQoY29uc3Qgdm9pZCogcCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX21hcmtzLmdldChh
dG9tTnVtYmVyKHApKSk7CisgICAgICAgIG1fbWFya3MuY2xlYXIoYXRvbU51bWJlcihwKSk7Cisg
ICAgfQorCiAgICAgaW5saW5lIGJvb2wgTWFya2VkQmxvY2s6OmlzTGl2ZShjb25zdCBKU0NlbGwq
IGNlbGwpCiAgICAgewogICAgICAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKICAgICAgICAgY2FzZSBB
bGxvY2F0ZWQ6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBaYXBwZWQ6
Ci0gICAgICAgICAgICBpZiAoaXNaYXBwZWQoY2VsbCkpIHsKLSAgICAgICAgICAgICAgICAvLyBP
YmplY3QgZGVhZCBpbiBwcmV2aW91cyBjb2xsZWN0aW9uLCBub3QgYWxsb2NhdGVkIHNpbmNlIHBy
ZXZpb3VzIGNvbGxlY3Rpb246IG1hcmsgYml0IHNob3VsZCBub3QgYmUgc2V0LgotICAgICAgICAg
ICAgICAgIEFTU0VSVCghbV9tYXJrcy5nZXQoYXRvbU51bWJlcihjZWxsKSkpOwotICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgLy8gTmV3bHkgYWxsb2NhdGVkIG9iamVjdHM6IG1hcmsgYml0IG5vdCBzZXQuCi0gICAg
ICAgICAgICAvLyBPYmplY3RzIHRoYXQgc3Vydml2ZWQgcHJpb3IgY29sbGVjdGlvbjogbWFyayBi
aXQgc2V0LgotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICAgICAgY2FzZSBNYXJrZWQ6
CiAgICAgICAgICAgICByZXR1cm4gbV9tYXJrcy5nZXQoYXRvbU51bWJlcihjZWxsKSk7CiAKQEAg
LTQwNyw2ICs0MDYsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBpc0xpdmUo
c3RhdGljX2Nhc3Q8Y29uc3QgSlNDZWxsKj4ocCkpOwogICAgIH0KIAorICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBGdW5jdG9yPiBpbmxpbmUgdm9pZCBNYXJrZWRCbG9jazo6Zm9yRWFjaENlbGwoRnVu
Y3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSBmaXJzdEF0b20o
KTsgaSA8IG1fZW5kQXRvbTsgaSArPSBtX2F0b21zUGVyQ2VsbCkgeworICAgICAgICAgICAgSlND
ZWxsKiBjZWxsID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8SlNDZWxsKj4oJmF0b21zKClbaV0pOwor
ICAgICAgICAgICAgZnVuY3RvcihjZWxsKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBGdW5jdG9yPiBpbmxpbmUgdm9pZCBNYXJrZWRCbG9jazo6Zm9yRWFjaExp
dmVDZWxsKEZ1bmN0b3ImIGZ1bmN0b3IpCiAgICAgewogICAgICAgICBmb3IgKHNpemVfdCBpID0g
Zmlyc3RBdG9tKCk7IGkgPCBtX2VuZEF0b207IGkgKz0gbV9hdG9tc1BlckNlbGwpIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAJKHJldmlzaW9uIDEy
ODQ5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQ2LDE3ICsxNDYsMTcgQEAgdm9pZCBNYXJrZWRTcGFjZTo6cmVhcFdl
YWtTZXRzKCkKIHZvaWQgTWFya2VkU3BhY2U6OmNhbm9uaWNhbGl6ZUNlbGxMaXZlbmVzc0RhdGEo
KQogewogICAgIGZvciAoc2l6ZV90IGNlbGxTaXplID0gcHJlY2lzZVN0ZXA7IGNlbGxTaXplIDw9
IHByZWNpc2VDdXRvZmY7IGNlbGxTaXplICs9IHByZWNpc2VTdGVwKSB7Ci0gICAgICAgIGFsbG9j
YXRvckZvcihjZWxsU2l6ZSkuemFwRnJlZUxpc3QoKTsKLSAgICAgICAgZGVzdHJ1Y3RvckFsbG9j
YXRvckZvcihjZWxsU2l6ZSkuemFwRnJlZUxpc3QoKTsKKyAgICAgICAgYWxsb2NhdG9yRm9yKGNl
bGxTaXplKS5jYW5vbmljYWxpemVDZWxsTGl2ZW5lc3NEYXRhKCk7CisgICAgICAgIGRlc3RydWN0
b3JBbGxvY2F0b3JGb3IoY2VsbFNpemUpLmNhbm9uaWNhbGl6ZUNlbGxMaXZlbmVzc0RhdGEoKTsK
ICAgICB9CiAKICAgICBmb3IgKHNpemVfdCBjZWxsU2l6ZSA9IGltcHJlY2lzZVN0ZXA7IGNlbGxT
aXplIDw9IGltcHJlY2lzZUN1dG9mZjsgY2VsbFNpemUgKz0gaW1wcmVjaXNlU3RlcCkgewotICAg
ICAgICBhbGxvY2F0b3JGb3IoY2VsbFNpemUpLnphcEZyZWVMaXN0KCk7Ci0gICAgICAgIGRlc3Ry
dWN0b3JBbGxvY2F0b3JGb3IoY2VsbFNpemUpLnphcEZyZWVMaXN0KCk7CisgICAgICAgIGFsbG9j
YXRvckZvcihjZWxsU2l6ZSkuY2Fub25pY2FsaXplQ2VsbExpdmVuZXNzRGF0YSgpOworICAgICAg
ICBkZXN0cnVjdG9yQWxsb2NhdG9yRm9yKGNlbGxTaXplKS5jYW5vbmljYWxpemVDZWxsTGl2ZW5l
c3NEYXRhKCk7CiAgICAgfQogCi0gICAgbV9sYXJnZUFsbG9jYXRvci56YXBGcmVlTGlzdCgpOwot
ICAgIG1fc3RydWN0dXJlQWxsb2NhdG9yLnphcEZyZWVMaXN0KCk7CisgICAgbV9sYXJnZUFsbG9j
YXRvci5jYW5vbmljYWxpemVDZWxsTGl2ZW5lc3NEYXRhKCk7CisgICAgbV9zdHJ1Y3R1cmVBbGxv
Y2F0b3IuY2Fub25pY2FsaXplQ2VsbExpdmVuZXNzRGF0YSgpOwogfQogCiBib29sIE1hcmtlZFNw
YWNlOjppc1BhZ2VkT3V0KGRvdWJsZSBkZWFkbGluZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>