<?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>80041</bug_id>
          
          <creation_ts>2012-03-01 12:32:43 -0800</creation_ts>
          <short_desc>Add a generic way to protect Nodes from getting destroyed during DOM mutations</short_desc>
          <delta_ts>2012-03-03 20:23:01 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Ojan Vafai">ojan</reporter>
          <assigned_to name="Ojan Vafai">ojan</assigned_to>
          <cc>abarth</cc>
    
    <cc>inferno</cc>
    
    <cc>jschuh</cc>
    
    <cc>morrita</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>568820</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-01 12:32:43 -0800</bug_when>
    <thetext>Add a generic way to protect Nodes from getting destroyed during DOM mutations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568824</commentid>
    <comment_count>1</comment_count>
      <attachid>129732</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-01 12:36:00 -0800</bug_when>
    <thetext>Created attachment 129732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568981</commentid>
    <comment_count>2</comment_count>
      <attachid>129759</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-01 15:32:39 -0800</bug_when>
    <thetext>Created attachment 129759
another performance test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569087</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-01 17:16:30 -0800</bug_when>
    <thetext>It looks we often know how many nodes are possibly deleted during the scope. 
In that case, we could pre-allocate the array statically using template. 
Even when we need some dynamic allocation, we could reserve such storage on the scope initialization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569776</commentid>
    <comment_count>4</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-03-02 11:09:26 -0800</bug_when>
    <thetext>We have refptr protects in appendChild, insertBefore and replaceChild. do you want to fix those? check out http://trac.webkit.org/changeset/106972. Please do make sure to run the tests in those changeset with libgmalloc after your change.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129732</attachid>
            <date>2012-03-01 12:36:00 -0800</date>
            <delta_ts>2012-03-01 12:36:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80041-20120301123559.patch</filename>
            <type>text/plain</type>
            <size>21804</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGIxMmRkZmEzZmZmZTlk
ZjJhYWZlZTA1MjAxYTllMWYyNTFmMWEyNS4uYjEyZWQxMTQ3ZWVjNGU5ZGMyOTQzNTY1MjU0NGVh
ZDFmZmI4YjQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAzLTAxICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgZ2VuZXJpYyB3YXkg
dG8gcHJvdGVjdCBOb2RlcyBmcm9tIGdldHRpbmcgZGVzdHJveWVkIGR1cmluZyBET00gbXV0YXRp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDA0
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3Rl
YWQgb2YgbmVlZGluZyB0byBjYXJlZnVsbHkgUmVmUHRyIGFsbCB0aGUgbm9kZXMgdGhhdCBtYXkg
YmUgZGVzdHJveWVkCisgICAgICAgIGR1ZSB0byBzeW5jaHJvbm91cyBldmVudHMgKGUuZy4gbXV0
YXRpb24gZXZlbnRzLCBibHVyLCBldGMpLCBhZGRpbmcgYSAKKyAgICAgICAgRE9NUmVtb3ZhbFNj
b3BlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZ1bmN0aW9uIHByb3RlY3RzIHRoZW0gZnJvbSBi
ZWluZworICAgICAgICBkZXN0cm95ZWQuIFRoaXMgaGFzIGEgc21hbGwgcGVyZm9ybWFuY2UgaGl0
IGluIHRoZSBjYXNlcyB3aGVyZSBub2RlcworICAgICAgICB3b3VsZCBoYXZlIGJlZW4gZGVzdHJv
eWVkLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Db250
YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlbW92ZUNo
aWxkcmVuKToKKyAgICAgICAgKiBkb20vRE9NUmVtb3ZhbFByb3RlY3Rvci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpET01SZW1vdmFsUHJvdGVjdG9y
Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVJlbW92YWxQcm90ZWN0b3I6Omlu
c3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVJlbW92YWxQcm90ZWN0b3I6OmluY3JlbWVu
dFNjb3BpbmdMZXZlbCk6CisgICAgICAgIChXZWJDb3JlOjpET01SZW1vdmFsUHJvdGVjdG9yOjpk
ZWNyZW1lbnRTY29waW5nTGV2ZWwpOgorICAgICAgICAoV2ViQ29yZTo6RE9NUmVtb3ZhbFByb3Rl
Y3Rvcjo6c2hvdWxkRGVzdHJveU5vZGUpOgorICAgICAgICAqIGRvbS9ET01SZW1vdmFsUHJvdGVj
dG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChET01SZW1vdmFsUHJv
dGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVJlbW92YWxQcm90ZWN0b3I6On5ET01SZW1v
dmFsUHJvdGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVJlbW92YWxQcm90ZWN0b3I6OkRP
TVJlbW92YWxQcm90ZWN0b3IpOgorICAgICAgICAoRE9NUmVtb3ZhbFNjb3BlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVJlbW92YWxTY29wZTo6RE9NUmVtb3ZhbFNjb3BlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVJlbW92YWxTY29wZTo6fkRPTVJlbW92YWxTY29wZSk6CisgICAgICAgICogZG9t
L05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVtb3ZlZExhc3RSZWYpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgor
CiAyMDEyLTAyLTI4ICBOZWQgSG9sYnJvb2sgIDxuaG9sYnJvb2tAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlaW1wbGVtZW50IHBhdGhGcm9tRm9udCgpIGluIFNpbXBsZUZvbnREYXRhTWFjLm1tCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxOGQ3M2NiZDZiMTgwOTNiYTBkZWRlMTg4
ZmEyYmY3YzJiMDUwOGRjLi40OTBjMWI0ZjA3NGU0YTBlNWFjNDNiNzdlY2UyZWU1MDM2ZjE4Yjg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE2MDAsNiArMTYwMCw4IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24u
aCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmggXAorCVNvdXJjZS9kb20vRE9NUmVtb3Zh
bFByb3RlY3Rvci5jcHAgXAorCVNvdXJjZS9kb20vRE9NUmVtb3ZhbFByb3RlY3Rvci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTGlzdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9ET01TdHJpbmdMaXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJpbmdNYXAuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCBlMjU4ZjllNzhmMzQ0YmE5MGU3MTFlNjljYWIyM2UyZmFh
YTRiYzJiLi43MDdlNjU0YWJkYWVlODk2MWI5ZDg3NGE3NGM1ZmJhMjg2NjBlMGNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC01MDEyLDYgKzUwMTIsOCBAQAogICAgICAgICAgICAgJ2RvbS9ET01Db3Jl
RXhjZXB0aW9uLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RPTUNvcmVFeGNlcHRpb24uaCcsCiAg
ICAgICAgICAgICAnZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCcsCisgICAgICAgICAgICAnZG9t
L0RPTVJlbW92YWxQcm90ZWN0b3IuY3BwJywKKyAgICAgICAgICAgICdkb20vRE9NUmVtb3ZhbFBy
b3RlY3Rvci5oJywKICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTGlzdC5jcHAnLAogICAgICAg
ICAgICAgJ2RvbS9ET01TdHJpbmdMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9ET01TdHJpbmdN
YXAuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggYTM0ZDI2YmQ1NGZmZTJiODllNTg4NjY0Y2ZjN2JmNDc3NDBmMGUxMC4uZjI1MDkxODlm
MzFkMzI5YWFmMzU3OGQ5MDk2NjZjYWNkZmY0YTY5OCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ3NzcwLDYgKzQ3NzcwLDYyIEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxET01SZW1v
dmFsUHJvdGVjdG9yLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJS
ZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERPTVJlbW92YWxQcm90ZWN0b3IuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERvY3VtZW50VHlw
ZS5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdjN2NlNTFhOGU3NmQz
YzY0ZTRiMjY3MTExZWY1N2VkZTdlYTI0MDUuLjBlNmU4OTYxNGU3MWZhYTdmODdiZWIxOTIwYmMw
NjEyYzlhZThlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQyNjIsNiArNDI2Miw4IEBACiAJCUE4RjQ2QjgxMENCMjBBOUQw
MDNBOTY3MCAvKiBET01TVkdTdHJpbmdMaXN0LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUQ3OUFEMjBBQ0ExN0VCMDBGMDJG
QzUgLyogRE9NU1ZHU3RyaW5nTGlzdC5oICovOyB9OwogCQlBOEZBNkU1RDBFNENGREVEMDBENUNG
NDkgLyogUGF0dGVybi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThGQTZFNUIwRTRDRkRFRDAwRDVDRjQ5IC8qIFBhdHRlcm4uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBOEZBNkU1RTBFNENGREVEMDBE
NUNGNDkgLyogUGF0dGVybi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEZBNkU1QzBFNENGREVEMDBENUNGNDkgLyogUGF0dGVybi5jcHAgKi87IH07
CisJCUE5M0RDMTI2MTRFRjIwMTMwMEFDRkM2QSAvKiBET01SZW1vdmFsUHJvdGVjdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE5M0RDMTI0MTRF
RjIwMTMwMEFDRkM2QSAvKiBET01SZW1vdmFsUHJvdGVjdG9yLmNwcCAqLzsgfTsKKwkJQTkzREMx
MjcxNEVGMjAxMzAwQUNGQzZBIC8qIERPTVJlbW92YWxQcm90ZWN0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE5M0RDMTI1MTRFRjIwMTMwMEFDRkM2
QSAvKiBET01SZW1vdmFsUHJvdGVjdG9yLmggKi87IH07CiAJCUE5QzZFNEUzMEQ3NDVFMDUwMDY0
NDJFOSAvKiBET01NaW1lVHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOUM2RTRFMTBENzQ1RTA1MDA2NDQyRTkgLyogRE9NTWltZVR5cGUuY3Bw
ICovOyB9OwogCQlBOUM2RTRFNDBENzQ1RTA1MDA2NDQyRTkgLyogRE9NTWltZVR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE5QzZFNEUyMEQ3NDVF
MDUwMDY0NDJFOSAvKiBET01NaW1lVHlwZS5oICovOyB9OwogCQlBOUM2RTRFNzBENzQ1RTE4MDA2
NDQyRTkgLyogRE9NTWltZVR5cGVBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOUM2RTRFNTBENzQ1RTE4MDA2NDQyRTkgLyogRE9NTWltZVR5
cGVBcnJheS5jcHAgKi87IH07CkBAIC0xMTA0Nyw2ICsxMTA0OSw4IEBACiAJCUE4RjQ1NzlGMTRC
QzEzRUMwMDBDRUE1OSAvKiBET01XaW5kb3dTUUxEYXRhYmFzZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gRE9NV2luZG93U1FMRGF0YWJhc2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBOEZBNkU1QjBFNENGREVEMDBENUNGNDkgLyogUGF0dGVybi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE4RkE2RTVDMEU0Q0ZERUQwMEQ1Q0Y0OSAvKiBQYXR0ZXJuLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdHRlcm4uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBOTNEQzEyNDE0RUYyMDEzMDBBQ0ZDNkEgLyogRE9NUmVtb3ZhbFByb3Rl
Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBET01SZW1vdmFs
UHJvdGVjdG9yLmNwcDsgcGF0aCA9IGRvbS9ET01SZW1vdmFsUHJvdGVjdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTkzREMxMjUxNEVGMjAxMzAwQUNGQzZBIC8qIERPTVJl
bW92YWxQcm90ZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRE9NUmVt
b3ZhbFByb3RlY3Rvci5oOyBwYXRoID0gZG9tL0RPTVJlbW92YWxQcm90ZWN0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTlDNkU0RTEwRDc0NUUwNTAwNjQ0MkU5IC8qIERPTU1p
bWVUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01NaW1l
VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE5QzZFNEUyMEQ3NDVFMDUw
MDY0NDJFOSAvKiBET01NaW1lVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NTWltZVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTlDNkU0RTUw
RDc0NUUxODAwNjQ0MkU5IC8qIERPTU1pbWVUeXBlQXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTU1pbWVUeXBlQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTQzMzUsNiArMTQzMzksOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk0MUUxQjFDQTBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJh
Y3RXb3JrZXIuY3BwICovLAorCQkJCUE5M0RDMTI0MTRFRjIwMTMwMEFDRkM2QSAvKiBET01SZW1v
dmFsUHJvdGVjdG9yLmNwcCAqLywKKwkJCQlBOTNEQzEyNTE0RUYyMDEzMDBBQ0ZDNkEgLyogRE9N
UmVtb3ZhbFByb3RlY3Rvci5oICovLAogCQkJCTQxRTFCMUNCMEZGNTk4NjkwMDU3NkIzQiAvKiBB
YnN0cmFjdFdvcmtlci5oICovLAogCQkJCTQxRTFCMUNDMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0
cmFjdFdvcmtlci5pZGwgKi8sCiAJCQkJNDE2MkE0NEQxMDExNDVBRTAwREZGM0VEIC8qIERlZGlj
YXRlZFdvcmtlckNvbnRleHQuY3BwICovLApAQCAtMjE4OTEsNiArMjE4OTcsNyBAQAogCQkJCTg1
MzhGMDg1MEFENzJDQjYwMDZBODFEMSAvKiBET01SYW5nZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1OEMzOEE3MEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NUU3MTFENjBBQzVENTM1MDA1MzI3MEYgLyogRE9NUmVjdEludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlBOTNEQzEyNzE0RUYyMDEzMDBBQ0ZDNkEgLyogRE9NUmVtb3ZhbFByb3RlY3Rv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU1RDM1OEEwQUQ3MDczMTAwMTlBQUM3IC8qIERPTVJH
QkNvbG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0QwRkM0RjBEQkQ3MjBCMDBCMkY2MzAgLyog
RE9NUkdCQ29sb3JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1QTg2ODUwQzMzNjc2
MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTE3NCw2ICsy
NTE4MSw3IEBACiAJCQkJQkNDNTczMzYwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZl
bnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTM4RjA1QzBBRDcyMkYxMDA2QTgxRDEgLyogRE9N
UmFuZ2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NThDMzhBODBBQThGMjA0MDBCMTg3QTQgLyog
RE9NUmVjdC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUE5M0RDMTI2MTRFRjIwMTMwMEFDRkM2QSAv
KiBET01SZW1vdmFsUHJvdGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQUVGQ0FFMTAx
NkNFNEEwMDQwRDM0RSAvKiBET01SR0JDb2xvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNUE4
Njg0MEMzMzY3NjAwMEVFQTY0OSAvKiBET01TZWxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNEFDQkMwQzMxMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGNhZWNl
Njg3MzBkODAzZWI2Y2VkYzM4N2YwZDI4N2E3OTNhOTNmOWMuLjcyMDI2ODA2MzZlMTdhOTJjM2Uy
M2FlYTk5MzgwNGY1OGEzODJiOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAK
QEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgIkNoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCIK
ICNpbmNsdWRlICJDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oIgorI2luY2x1ZGUgIkRPTVJlbW92
YWxQcm90ZWN0b3IuaCIKICNpbmNsdWRlICJEZWxldGVCdXR0b25Db250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTUyMSwx
NSArNTIyLDE0IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cGFyc2VyUmVtb3ZlQ2hpbGQoTm9kZSog
b2xkQ2hpbGQpCiAvLyByZWdhcmRsZXNzIG9mIHJlYWQtb25seSBzdGF0dXMgb3IgZXZlbnQgZXhj
ZXB0aW9ucywgZS5nLgogdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZHJlbigpCiB7Cisg
ICAgRE9NUmVtb3ZhbFNjb3BlIGRvbVJlbW92YWxTY29wZTsKKwogICAgIGlmICghbV9maXJzdENo
aWxkKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBUaGUgY29udGFpbmVyIG5vZGUgY2FuIGJl
IHJlbW92ZWQgZnJvbSBldmVudCBoYW5kbGVycy4KLSAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4g
cHJvdGVjdCh0aGlzKTsKLQogICAgIC8vIERvIGFueSBwcmVwIHdvcmsgbmVlZGVkIGJlZm9yZSBh
Y3R1YWxseSBzdGFydGluZyB0byBkZXRhY2gKICAgICAvLyBhbmQgcmVtb3ZlLi4uIGUuZy4gc3Rv
cCBsb2FkaW5nIGZyYW1lcywgZmlyZSB1bmxvYWQgZXZlbnRzLgotICAgIHdpbGxSZW1vdmVDaGls
ZHJlbihwcm90ZWN0LmdldCgpKTsKKyAgICB3aWxsUmVtb3ZlQ2hpbGRyZW4odGhpcyk7CiAKICAg
ICAvLyBleGNsdWRlIHRoaXMgbm9kZSB3aGVuIGxvb2tpbmcgZm9yIHJlbW92ZWQgZm9jdXNlZE5v
ZGUgc2luY2Ugb25seSBjaGlsZHJlbiB3aWxsIGJlIHJlbW92ZWQKICAgICBkb2N1bWVudCgpLT5y
ZW1vdmVGb2N1c2VkTm9kZU9mU3VidHJlZSh0aGlzLCB0cnVlKTsKQEAgLTUzOSw5ICs1MzksOSBA
QCB2b2lkIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVuKCkKICNlbmRpZgogCiAgICAgZm9y
YmlkRXZlbnREaXNwYXRjaCgpOwotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4sIDEwPiByZW1vdmVk
Q2hpbGRyZW47CisgICAgVmVjdG9yPE5vZGUqLCAxMD4gcmVtb3ZlZENoaWxkcmVuOwogICAgIHJl
bW92ZWRDaGlsZHJlbi5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNoaWxkTm9kZUNvdW50KCkpOwot
ICAgIHdoaWxlIChSZWZQdHI8Tm9kZT4gbiA9IG1fZmlyc3RDaGlsZCkgeworICAgIHdoaWxlIChO
b2RlKiBuID0gbV9maXJzdENoaWxkKSB7CiAgICAgICAgIE5vZGUqIG5leHQgPSBuLT5uZXh0U2li
bGluZygpOwogCiAgICAgICAgIC8vIFJlbW92ZSB0aGUgbm9kZSBmcm9tIHRoZSB0cmVlIGJlZm9y
ZSBjYWxsaW5nIGRldGFjaCBvciByZW1vdmVkRnJvbURvY3VtZW50ICg0NDI3MDI0LCA0MTI5NzQ0
KS4KQEAgLTU1MCwxMiArNTUwLDE3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRy
ZW4oKQogICAgICAgICBuLT5zZXRQcmV2aW91c1NpYmxpbmcoMCk7CiAgICAgICAgIG4tPnNldE5l
eHRTaWJsaW5nKDApOwogICAgICAgICBuLT5zZXRQYXJlbnQoMCk7Ci0gICAgICAgIGRvY3VtZW50
KCktPmFkb3B0SWZOZWVkZWQobi5nZXQoKSk7CisgICAgICAgIGRvY3VtZW50KCktPmFkb3B0SWZO
ZWVkZWQobik7CiAKICAgICAgICAgbV9maXJzdENoaWxkID0gbmV4dDsKICAgICAgICAgaWYgKG4g
PT0gbV9sYXN0Q2hpbGQpCiAgICAgICAgICAgICBtX2xhc3RDaGlsZCA9IDA7Ci0gICAgICAgIHJl
bW92ZWRDaGlsZHJlbi5hcHBlbmQobi5yZWxlYXNlKCkpOworICAgICAgICByZW1vdmVkQ2hpbGRy
ZW4uYXBwZW5kKG4pOworCisgICAgICAgIC8vIE5vZGVzIGdldCBkZXN0cm95ZWQgb24gZGVyZWYs
IHNvIHdlIG5lZWQgdG8gYWRkIHRoZSBub2RlcyB0byB0aGUKKyAgICAgICAgLy8gcmVtb3ZhbCB2
ZWN0b3IuCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91bGQgcHJvYmFibHkgaGF2
ZSBhIGJldHRlciBuYW1lLgorICAgICAgICBET01SZW1vdmFsUHJvdGVjdG9yOjppbnN0YW5jZSgp
LT5zaG91bGREZXN0cm95Tm9kZShuKTsKICAgICB9CiAKICAgICBzaXplX3QgcmVtb3ZlZENoaWxk
cmVuQ291bnQgPSByZW1vdmVkQ2hpbGRyZW4uc2l6ZSgpOwpAQCAtNTY4LDcgKzU3Myw3IEBAIHZv
aWQgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRyZW4oKQogICAgIC8vIGFuZCBkb2VzIG5vdCBw
b2ludCB0byB0aGUgc2FtZSBwYXJlbnQgYXMgaXRzIG5leHQgc2libGluZy4KICAgICAvLyBiLiBk
ZXN0cm95aW5nIFJlbmRlcmVycyBvZiBzdGFuZGFsb25lIG5vZGVzIGlzIHNvbWV0aW1lcyBmYXN0
ZXIuCiAgICAgZm9yIChpID0gMDsgaSA8IHJlbW92ZWRDaGlsZHJlbkNvdW50OyArK2kpIHsKLSAg
ICAgICAgTm9kZSogcmVtb3ZlZENoaWxkID0gcmVtb3ZlZENoaWxkcmVuW2ldLmdldCgpOworICAg
ICAgICBOb2RlKiByZW1vdmVkQ2hpbGQgPSByZW1vdmVkQ2hpbGRyZW5baV07CiAgICAgICAgIGlm
IChyZW1vdmVkQ2hpbGQtPmF0dGFjaGVkKCkpCiAgICAgICAgICAgICByZW1vdmVkQ2hpbGQtPmRl
dGFjaCgpOwogICAgIH0KQEAgLTU3OSw3ICs1ODQsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnJl
bW92ZUNoaWxkcmVuKCkKICAgICBjaGlsZHJlbkNoYW5nZWQoZmFsc2UsIDAsIDAsIC1zdGF0aWNf
Y2FzdDxpbnQ+KHJlbW92ZWRDaGlsZHJlbkNvdW50KSk7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwg
cmVtb3ZlZENoaWxkcmVuQ291bnQ7ICsraSkgewotICAgICAgICBOb2RlKiByZW1vdmVkQ2hpbGQg
PSByZW1vdmVkQ2hpbGRyZW5baV0uZ2V0KCk7CisgICAgICAgIE5vZGUqIHJlbW92ZWRDaGlsZCA9
IHJlbW92ZWRDaGlsZHJlbltpXTsKICAgICAgICAgaWYgKHJlbW92ZWRDaGlsZC0+aW5Eb2N1bWVu
dCgpKQogICAgICAgICAgICAgcmVtb3ZlZENoaWxkLT5yZW1vdmVkRnJvbURvY3VtZW50KCk7CiAg
ICAgICAgIGVsc2UgaWYgKHJlbW92ZWRDaGlsZC0+aXNDb250YWluZXJOb2RlKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVtb3ZhbFByb3RlY3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NUmVtb3ZhbFByb3RlY3Rvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGE2MGRkNWQ0
NzM4NTFiYjkxYjAxZGMwZGYwNGU4ZGY3Mjc4MjcyNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01SZW1vdmFsUHJvdGVjdG9yLmNwcApAQCAtMCwwICsxLDgwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVJlbW92YWxQcm90ZWN0b3IuaCIKKworI2lu
Y2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnREaXNwYXRjaE1lZGlhdG9yLmgiCisjaW5j
bHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0RPTVJlbW92YWxQcm90ZWN0b3IqIERPTVJlbW92YWxQcm90ZWN0b3I6OnNf
aW5zdGFuY2UgPSAwOworCit2b2lkIERPTVJlbW92YWxQcm90ZWN0b3I6OmluaXRpYWxpemUoKQor
eworICAgIEFTU0VSVCghc19pbnN0YW5jZSk7CisgICAgT3duUHRyPERPTVJlbW92YWxQcm90ZWN0
b3I+IGluc3RhbmNlID0gYWRvcHRQdHIobmV3IERPTVJlbW92YWxQcm90ZWN0b3IpOworICAgIHNf
aW5zdGFuY2UgPSBpbnN0YW5jZS5sZWFrUHRyKCk7Cit9CisKK0RPTVJlbW92YWxQcm90ZWN0b3Iq
IERPTVJlbW92YWxQcm90ZWN0b3I6Omluc3RhbmNlKCkKK3sKKyAgICBpZiAoIXNfaW5zdGFuY2Up
CisgICAgICAgIGluaXRpYWxpemUoKTsKKyAgICByZXR1cm4gc19pbnN0YW5jZTsKK30KKwordm9p
ZCBET01SZW1vdmFsUHJvdGVjdG9yOjppbmNyZW1lbnRTY29waW5nTGV2ZWwoKQoreworICAgIG1f
c2NvcGluZ0xldmVsKys7Cit9CisKK3ZvaWQgRE9NUmVtb3ZhbFByb3RlY3Rvcjo6ZGVjcmVtZW50
U2NvcGluZ0xldmVsKCkKK3sKKyAgICBBU1NFUlQobV9zY29waW5nTGV2ZWwpOworICAgIG1fc2Nv
cGluZ0xldmVsLS07CisgICAgaWYgKCFtX3Njb3BpbmdMZXZlbCkKKyAgICAgICAgbV9ub2Rlc1Rv
S2VlcEFsaXZlLmNsZWFyKCk7Cit9CisKK2Jvb2wgRE9NUmVtb3ZhbFByb3RlY3Rvcjo6c2hvdWxk
RGVzdHJveU5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW1fc2NvcGluZ0xldmVsKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBtX25vZGVzVG9LZWVwQWxpdmUuYXBwZW5kKG5vZGUpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTVJlbW92YWxQcm90ZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZW1vdmFsUHJv
dGVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ2NDUwOWUxNmNmMmM5ZWY5OWZlNzMwY2NhNTg5OWZmNTEw
MWZhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZW1vdmFsUHJv
dGVjdG9yLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRE9NUmVtb3ZhbFByb3RlY3Rvcl9oCisj
ZGVmaW5lIERPTVJlbW92YWxQcm90ZWN0b3JfaAorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IE5vZGU7CisKK2NsYXNzIERPTVJlbW92YWxQcm90ZWN0b3IgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKERPTVJlbW92YWxQcm90ZWN0b3IpOworCitwdWJsaWM6CisgICAgfkRPTVJlbW92YWxQ
cm90ZWN0b3IoKSB7IH0KKyAgICBzdGF0aWMgRE9NUmVtb3ZhbFByb3RlY3RvciogaW5zdGFuY2Uo
KTsKKyAgICB2b2lkIGluY3JlbWVudFNjb3BpbmdMZXZlbCgpOworICAgIHZvaWQgZGVjcmVtZW50
U2NvcGluZ0xldmVsKCk7CisgICAgYm9vbCBzaG91bGREZXN0cm95Tm9kZShOb2RlKik7CisKK3By
aXZhdGU6CisgICAgRE9NUmVtb3ZhbFByb3RlY3RvcigpCisgICAgICAgIDogbV9zY29waW5nTGV2
ZWwoMCkKKyAgICB7CisgICAgfQorICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKKworICAg
IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiBtX25vZGVzVG9LZWVwQWxpdmU7CisgICAgdW5zaWduZWQg
bV9zY29waW5nTGV2ZWw7CisgICAgc3RhdGljIERPTVJlbW92YWxQcm90ZWN0b3IqIHNfaW5zdGFu
Y2U7Cit9OworCitjbGFzcyBET01SZW1vdmFsU2NvcGUgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKERPTVJlbW92YWxTY29wZSk7CisKK3B1YmxpYzoKKyAgICBET01SZW1vdmFsU2NvcGUoKSB7
IERPTVJlbW92YWxQcm90ZWN0b3I6Omluc3RhbmNlKCktPmluY3JlbWVudFNjb3BpbmdMZXZlbCgp
OyB9CisgICAgfkRPTVJlbW92YWxTY29wZSgpIHsgRE9NUmVtb3ZhbFByb3RlY3Rvcjo6aW5zdGFu
Y2UoKS0+ZGVjcmVtZW50U2NvcGluZ0xldmVsKCk7IH0KK307CisKK30KKworI2VuZGlmIC8vIERP
TVJlbW92YWxQcm90ZWN0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDBmMzdmZDhkYmRmZTA3OGEy
OTVlOGIzMmU4OTlhNjk0YTdlN2Y2MjIuLjVmZTY4YzFlYjJlMDdkNmJhZDY1ZGFlZDY0NzdlMDEy
YjQwNTI0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJD
bGFzc05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJET01SZW1vdmFsUHJvdGVjdG9y
LmgiCiAjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgpAQCAtODM4LDYgKzgzOSwyMCBAQCB2b2lk
IE5vZGU6OmRlcmVmRXZlbnRUYXJnZXQoKQogICAgIGRlcmVmKCk7CiB9CiAKK3ZvaWQgTm9kZTo6
cmVtb3ZlZExhc3RSZWYoKQoreworI2lmbmRlZiBOREVCVUcKKyAgICBtX2luUmVtb3ZlZExhc3RS
ZWZGdW5jdGlvbiA9IGZhbHNlOworI2VuZGlmCisgICAgaWYgKERPTVJlbW92YWxQcm90ZWN0b3I6
Omluc3RhbmNlKCktPnNob3VsZERlc3Ryb3lOb2RlKHRoaXMpKSB7CisjaWZuZGVmIE5ERUJVRwor
ICAgICAgICBtX2luUmVtb3ZlZExhc3RSZWZGdW5jdGlvbiA9IHRydWU7CisgICAgICAgIG1fZGVs
ZXRpb25IYXNCZWd1biA9IHRydWU7CisjZW5kaWYKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAg
fQorfQorCiB2b2lkIE5vZGU6OnNldE5lZWRzU3R5bGVSZWNhbGMoU3R5bGVDaGFuZ2VUeXBlIGNo
YW5nZVR5cGUpCiB7CiAgICAgQVNTRVJUKGNoYW5nZVR5cGUgIT0gTm9TdHlsZUNoYW5nZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaAppbmRleCA1YWY4MjE2ZWFhMDY0MmRkYjRiYzQ3ZjYxYTVhMDQyNjNlM2UwZjY5Li45
NDNhM2IxNDMwOTQ5ZjBkMTE3OWJiNzZlMjU2ZjdhYTc0YjBkOThlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAg
LTYwMiw2ICs2MDIsOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgVHJlZVNoYXJlZDxDb250YWluZXJO
b2RlPjo6cmVmOwogICAgIHVzaW5nIFRyZWVTaGFyZWQ8Q29udGFpbmVyTm9kZT46OmRlcmVmOwog
CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRMYXN0UmVmKCk7CisKICAgICB2aXJ0dWFsIEV2ZW50
VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CiAgICAgdmlydHVhbCBFdmVudFRhcmdldERh
dGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwogCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFiMTI4ZmFk
YjQ0MjMzYjQ4MzBjMjNkYTgzNDhiM2RlYmY2OGI3MjYuLjgyODVkN2M4YmRjNzMwZTg4ZjRmY2Fj
NWI2N2IzNzA1OGRiNDBhZTggMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9n
CisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MDMtMDEgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgYSBn
ZW5lcmljIHdheSB0byBwcm90ZWN0IE5vZGVzIGZyb20gZ2V0dGluZyBkZXN0cm95ZWQgZHVyaW5n
IERPTSBtdXRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgwMDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBNdXRhdGlvbi9kZWxldGUtbm9kZXMuaHRtbDogQWRkZWQuCisgICAgICAgIFRlc3Rz
IHRoZSB3b3JzdC1jYXNlIG9mIGRlbGV0aW5nIDUwMCwwMDAgbm9kZXMuCisKIDIwMTItMDItMjYg
IEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtQZXJmb3Jt
YW5jZSBUZXN0c10gW0Nocm9taXVtXSBCaW5kaW5ncy9kb20tYXR0cmlidXRlcy5odG1sIGlzIHRp
bWluZyBvdXQKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTXV0YXRpb24vZGVsZXRlLW5v
ZGVzLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL011dGF0aW9uL2RlbGV0ZS1ub2Rlcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBmZjA4MjhiYjQxOTM2YWNlMGVhNTg0MzkxZjdhMTNmOTI0NmQ3NGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL011dGF0aW9uL2RlbGV0ZS1ub2Rlcy5odG1s
CkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8cHJlIGlkPSJsb2ci
PjwvcHJlPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0Pgor
PGRpdiBpZD0ic2FuZGJveCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9kaXY+Cis8c2NyaXB0Pgor
dmFyIHNhbmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOworZm9yICh2
YXIgaSA9IDA7IGkgPCA1MDAwMDA7ICsraSkKKyAgICBzYW5kYm94LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKwordmFyIGh0bWwgPSBzYW5kYm94LmlubmVySFRN
TDsKK3ZhciBudW1SdW5zID0gMTA7Cit2YXIgdGltZXMgPSBbXTsKKworZnVuY3Rpb24gcnVuQWdh
aW4oKSB7CisgICAgc2FuZGJveC5pbm5lckhUTUwgPSBodG1sOworCisgICAgdmFyIHN0YXJ0ID0g
RGF0ZS5ub3coKTsKKyAgICBzYW5kYm94LmlubmVySFRNTCA9ICcnOworICAgIHZhciB0aW1lID0g
RGF0ZS5ub3coKSAtIHN0YXJ0OworICAgIHRpbWVzLnB1c2godGltZSk7CisgICAgUGVyZlRlc3RS
dW5uZXIubG9nKHRpbWUpOworCisgICAgaWYgKG51bVJ1bnMtLSA+PSAwKQorICAgICAgICBzZXRU
aW1lb3V0KHJ1bkFnYWluLCAwKTsKKyAgICBlbHNlCisgICAgICAgIFBlcmZUZXN0UnVubmVyLmxv
Z1N0YXRpc3RpY3ModGltZXMpOworfQorCitQZXJmVGVzdFJ1bm5lci5sb2coJ1J1bm5pbmcgJyAr
IG51bVJ1bnMgKyAnIHRpbWVzLicpOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBy
dW5BZ2Fpbik7Cis8L3NjcmlwdD4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>129759</attachid>
            <date>2012-03-01 15:32:39 -0800</date>
            <delta_ts>2012-03-01 15:32:39 -0800</delta_ts>
            <desc>another performance test</desc>
            <filename>delete-nodes-on-blur.html</filename>
            <type>text/html</type>
            <size>1230</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cjxib2R5Pgo8cHJlIGlkPSJsb2ciPjwvcHJlPgo8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQ+CmZ1bmN0aW9uIG9uQmx1
cigpIHsKICAgIHZhciByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CiAgICByYW5nZS5z
ZWxlY3ROb2RlQ29udGVudHMoc2FuZGJveCk7CiAgICByYW5nZS5kZWxldGVDb250ZW50cygpOwp9
Cgp2YXIgc2FuZGJveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NhbmRib3gnKTsKZm9yICh2
YXIgaSA9IDA7IGkgPCA1MDAwMDA7ICsraSkKICAgIHNhbmRib3guYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwoKdmFyIGh0bWwgPSBzYW5kYm94LmlubmVySFRNTDsK
dmFyIG51bVJ1bnMgPSAxMDsKdmFyIHRpbWVzID0gW107CgpmdW5jdGlvbiBydW5BZ2FpbigpIHsK
ICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICBkb2N1
bWVudC5ib2R5Lmluc2VydEJlZm9yZShpbnB1dCwgZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKTsK
ICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBvbkJsdXIpOwoKICAgIHNhbmRib3gu
aW5uZXJIVE1MID0gaHRtbDsKICAgIGlucHV0LmZvY3VzKCk7CgogICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKICAgICAgICB2YXIgc3RhcnQgPSBEYXRlLm5vdygpOwogICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoaW5wdXQpOwogICAgICAgIHZhciB0aW1lID0gRGF0ZS5ub3coKSAt
IHN0YXJ0OwogICAgICAgIHRpbWVzLnB1c2godGltZSk7CiAgICAgICAgUGVyZlRlc3RSdW5uZXIu
bG9nKHRpbWUpOwoKICAgICAgICBpZiAoLS1udW1SdW5zID4gMCkKICAgICAgICAgICAgc2V0VGlt
ZW91dChydW5BZ2FpbiwgMCk7CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgIFBlcmZUZXN0UnVubmVyLmxvZ1N0YXRpc3RpY3Mo
dGltZXMpOwogICAgICAgIH0KICAgIH0sIDApOwp9CgpQZXJmVGVzdFJ1bm5lci5sb2coJ1J1bm5p
bmcgJyArIG51bVJ1bnMgKyAnIHRpbWVzLicpOwp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZCcsIHJ1bkFnYWluKTsKPC9zY3JpcHQ+CjwvYm9keT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>