<?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>149050</bug_id>
          
          <creation_ts>2015-09-10 16:36:19 -0700</creation_ts>
          <short_desc>Fix JSC_objectsAreImmortal to work with JSC_useZombieMode</short_desc>
          <delta_ts>2015-09-14 13:28:31 -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>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1125072</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-09-10 16:36:19 -0700</bug_when>
    <thetext>Previously, JSC_objectsAreImmortal works by marking all dead objects.  If we also have JSC_useZombieMode enabled, the marking of dead objects may end up walking over zombified objects and crash the VM.  To be compatible with JSC_useZombieMode, We can make JSC_objectsAreImmortal work by sweeping dead objects but never freeing them instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125715</commentid>
    <comment_count>1</comment_count>
      <attachid>261127</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-09-14 13:28:31 -0700</bug_when>
    <thetext>Created attachment 261127
work in progress

AFAIK, this patch works.  The only issue is that the test case is not able to reproduce the original issue (which I previously observed why debugging some real world bug).  Archiving this patch for now and moving on until I see this issue again or think of how to reproduce it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261127</attachid>
            <date>2015-09-14 13:28:31 -0700</date>
            <delta_ts>2015-09-14 13:28:31 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-149050.patch</filename>
            <type>text/plain</type>
            <size>16261</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg5NzQ0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDE1LTA5LTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggSlNDX29iamVjdHNBcmVJbW1vcnRhbCB0byB3b3JrIHdpdGggSlNDX3VzZVpvbWJpZU1vZGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkwNTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91
c2x5LCBKU0Nfb2JqZWN0c0FyZUltbW9ydGFsIHdvcmtzIGJ5IG1hcmtpbmcgYWxsIGRlYWQgb2Jq
ZWN0cy4gIElmIHdlIGFsc28gaGF2ZQorICAgICAgICBKU0NfdXNlWm9tYmllTW9kZSBlbmFibGVk
LCB0aGUgbWFya2luZyBvZiBkZWFkIG9iamVjdHMgbWF5IGVuZCB1cCB3YWxraW5nIG92ZXIKKyAg
ICAgICAgem9tYmlmaWVkIG9iamVjdHMgYW5kIGNyYXNoIHRoZSBWTS4gIFRvIGJlIGNvbXBhdGli
bGUgd2l0aCBKU0NfdXNlWm9tYmllTW9kZSwgd2UgbWFrZQorICAgICAgICBKU0Nfb2JqZWN0c0Fy
ZUltbW9ydGFsIHdvcmsgYnkgc3dlZXBpbmcgZGVhZCBvYmplY3RzIGJ1dCBuZXZlciBmcmVlaW5n
IHRoZW0gaW5zdGVhZC4KKworICAgICAgICAqIEFQSS90ZXN0cy9JbW1vcnRhbE9iamVjdHNUZXN0
LmNwcDogQWRkZWQuCisgICAgICAgIChtYWtlT2JqZWN0cyk6CisgICAgICAgICh2ZXJpZnlPYmpl
Y3RzQXJlRGVhZCk6CisgICAgICAgICh0ZXN0SW1tb3J0YWxPYmplY3RzKToKKyAgICAgICAgKiBB
UEkvdGVzdHMvSW1tb3J0YWxPYmplY3RzVGVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBBUEkvdGVz
dHMvdGVzdGFwaS5jOgorICAgICAgICAobWFpbik6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAg
ICAgICAoSlNDOjpIZWFwOjpkaWRGaW5pc2hDb2xsZWN0aW9uKToKKyAgICAgICAgKEpTQzo6SGVh
cDo6cmVzdW1lQ29tcGlsZXJUaHJlYWRzKToKKyAgICAgICAgKEpTQzo6SGVhcDo6c2V0RnVsbEFj
dGl2aXR5Q2FsbGJhY2spOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrRGVhZE9iamVjdHMpOiBE
ZWxldGVkLgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAqIGhlYXAvTWFya2VkQmxv
Y2suY3BwOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6c3BlY2lhbGl6ZWRTd2VlcCk6Cisg
ICAgICAgICogaGVhcC9NYXJrZWRTcGFjZS5jcHA6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNl
OjpzaHJpbmspOgorCiAyMDE1LTA5LTE0ICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtA
Z21haWwuY29tPgogCiAgICAgICAgIEltcGxlbWVudCB0aGUgYXJpdGhtZXRpYyBpbnN0cnVjdGlv
bnMgZm9yIGZsb2F0cyBpbiBXZWJBc3NlbWJseQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy9JbW1vcnRhbE9iamVjdHNUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0ltbW9ydGFsT2JqZWN0c1Rlc3QuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9JbW1vcnRhbE9iamVjdHNU
ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbW1vcnRhbE9iamVjdHNUZXN0LmgiCisKKyNp
bmNsdWRlICJJbml0aWFsaXplVGhyZWFkaW5nLmgiCisjaW5jbHVkZSAiSlNDb250ZXh0UmVmUHJp
dmF0ZS5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHRDb3JlLmgiCisjaW5jbHVkZSAiT3B0aW9ucy5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKwordXNpbmcgSlNDOjpPcHRp
b25zOworCitleHRlcm4gIkMiIHZvaWQgSlNTeW5jaHJvbm91c0dhcmJhZ2VDb2xsZWN0Rm9yRGVi
dWdnaW5nKEpTQ29udGV4dFJlZik7CisKK3N0YXRpYyBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4
dCA9IG51bGxwdHI7CisKK3N0YXRpYyBib29sIG1ha2VPYmplY3RzKFZlY3RvcjxKU1ZhbHVlUmVm
PiYgY2FjaGVkT2JqZWN0cywgSlNTdHJpbmdSZWYgc2NyaXB0KSB7CisgICAgYm9vbCBmYWlsZWQg
PSBmYWxzZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNhY2hlZE9iamVjdHMuc2l6ZSgp
OyBpKyspIHsKKyAgICAgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSBudWxscHRyOworICAgICAg
ICBKU1ZhbHVlUmVmIHNjcmlwdFJlc3VsdCA9IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2Ny
aXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgCisgICAgICAg
IGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIHByaW50ZigiRkFJTDogVW5leHBlY3RlZCBF
cnJvciB0aHJvd24gaW4gSW1tb3J0YWxPYmplY3RzVGVzdCB0ZXN0XG4iKTsKKyAgICAgICAgICAg
IGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgY2FjaGVkT2JqZWN0c1tpXSA9IHNjcmlwdFJlc3VsdDsKKyAgICB9CisgICAgcmV0
dXJuIGZhaWxlZDsKK30KKworc3RhdGljIGJvb2wgdmVyaWZ5T2JqZWN0c0FyZURlYWQoVmVjdG9y
PEpTVmFsdWVSZWY+JiBjYWNoZWRPYmplY3RzKSB7CisgICAgYm9vbCBmYWlsZWQgPSBmYWxzZTsK
KworICAgIC8vIFdlIG9ubHkgY2hlY2sgdXAgdG8gdGhlIG9iamVjdCBiZWZvcmUgdGhlIGxhc3Qg
b25lIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgaXMKKyAgICAvLyBiZWNhdXNlIHRoZXJlIG1heSBi
ZSBhIHN0cmF5IHBvaW50ZXIgdG8gdGhlIGxhc3QgY3JlYXRlZCBvYmplY3Qgc3RpbGwgb24gdGhl
CisgICAgLy8gc3RhY2ssIGFuZCB0aGUgY29uc2VydmF0aXZlIEdDIHdpbGwgdGhlcmVmb3JlIGtl
ZXAgdGhhdCBvYmplY3QgYWxpdmUuCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjYWNoZWRP
YmplY3RzLnNpemUoKSAtIDE7IGkrKykgeworICAgICAgICBKU1ZhbHVlUmVmIG9iamVjdCA9IGNh
Y2hlZE9iamVjdHNbaV07CisgICAgICAgIHVpbnRwdHJfdCB2YWx1ZSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludHB0cl90Kj4ob2JqZWN0KVsxXTsKKyAgICAgICAgaWYgKHZhbHVlICE9IDB4
ZGVhZGJlZWYpIHsKKyAgICAgICAgICAgIHByaW50ZigiRkFJTDogRGVhZCBvYmplY3QgWyV6dV0g
aXMgbm90IHpvbWJpZmllZCBpbiBJbW1vcnRhbE9iamVjdHNUZXN0IHRlc3RcbiIsIGkpOworICAg
ICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiBmYWlsZWQ7Cit9CisKKy8vIFRoaXMgdGVzdHMgdGVzdHMgdGhhdCBK
U0Nfb2JqZWN0c0FyZUltbW9ydGFsPXRydWUgd2lsbCBwcmV2ZW50IEdDIGZyb20gZnJlZWluZwor
Ly8gdW5yZWFjaGFibGUgb2JqZWN0cy4KKy8vIFRoaXMgdGVzdCBzaG91bGQgbm90IGhhbmcgb3Ig
Y3Jhc2guCitpbnQgdGVzdEltbW9ydGFsT2JqZWN0cygpCit7CisgICAgYm9vbCBmYWlsZWQgPSBm
YWxzZTsKKworICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOworICAgIE9wdGlvbnM6Omlu
aXRpYWxpemUoKTsgLy8gRW5zdXJlIG9wdGlvbnMgaXMgaW5pdGlhbGl6ZWQgZmlyc3QuCisKKyAg
ICBhdXRvIG9yaWdPYmplY3RzQXJlSW1tb3J0YWwgPSBPcHRpb25zOjpvYmplY3RzQXJlSW1tb3J0
YWwoKTsKKyAgICBhdXRvIG9yaWdVc2Vab21iaWVNb2RlID0gT3B0aW9uczo6dXNlWm9tYmllTW9k
ZSgpOworCisgICAgY29uc3QgY2hhciogc2NyaXB0U3RyaW5nID0KKyAgICAgICAgInZhciBhcnIg
PSBbXTsiIFwKKyAgICAgICAgImZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeyIgXAorICAg
ICAgICAiICAgIGFycltpXSA9IHt9OyIgXAorICAgICAgICAiICAgIGFycltpXS5uYW1lID0gJ2Vs
ZW1lbnQnICsgaTsiIFwKKyAgICAgICAgIn07IiBcCisgICAgICAgICJhcnI7IjsKKworICAgIEpT
U3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdFN0
cmluZyk7CisKKyAgICBjb250ZXh0ID0gSlNHbG9iYWxDb250ZXh0Q3JlYXRlSW5Hcm91cChudWxs
cHRyLCBudWxscHRyKTsKKyAgICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRleHRH
ZXRHbG9iYWxPYmplY3QoY29udGV4dCk7CisgICAgQVNTRVJUKEpTVmFsdWVJc09iamVjdChjb250
ZXh0LCBnbG9iYWxPYmplY3QpKTsKKworICAgIE9wdGlvbnM6Om9iamVjdHNBcmVJbW1vcnRhbCgp
ID0gdHJ1ZTsKKyAgICBPcHRpb25zOjp1c2Vab21iaWVNb2RlKCkgPSB0cnVlOworCisgICAgVmVj
dG9yPEpTVmFsdWVSZWY+IGNhY2hlZE9iamVjdHMoMTAwMCk7CisKKyAgICBmYWlsZWQgPSBtYWtl
T2JqZWN0cyhjYWNoZWRPYmplY3RzLCBzY3JpcHQpOworICAgIEpTU3luY2hyb25vdXNHYXJiYWdl
Q29sbGVjdEZvckRlYnVnZ2luZyhjb250ZXh0KTsKKyAgICBmYWlsZWQgPSB2ZXJpZnlPYmplY3Rz
QXJlRGVhZChjYWNoZWRPYmplY3RzKTsKKworICAgIE9wdGlvbnM6Om9iamVjdHNBcmVJbW1vcnRh
bCgpID0gb3JpZ09iamVjdHNBcmVJbW1vcnRhbDsKKyAgICBPcHRpb25zOjp1c2Vab21iaWVNb2Rl
KCkgPSBvcmlnVXNlWm9tYmllTW9kZTsKKworICAgIGlmICghZmFpbGVkKQorICAgICAgICBwcmlu
dGYoIlBBU1M6IEltbW9ydGFsIG9iamVjdHMgdGVzdC5cbiIpOworICAgIHJldHVybiBmYWlsZWQ7
Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0ltbW9ydGFsT2JqZWN0
c1Rlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0lt
bW9ydGFsT2JqZWN0c1Rlc3QuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvSW1tb3J0YWxPYmplY3RzVGVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEltbW9ydGFsT2JqZWN0c1Rlc3RfaAorI2Rl
ZmluZSBJbW1vcnRhbE9iamVjdHNUZXN0X2gKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4g
IkMiIHsKKyNlbmRpZgorCitpbnQgdGVzdEltbW9ydGFsT2JqZWN0cygpOworCisjaWZkZWYgX19j
cGx1c3BsdXMKK30gLyogZXh0ZXJuICJDIiAqLworI2VuZGlmCisKKyNlbmRpZiAvKiBJbW1vcnRh
bE9iamVjdHNUZXN0X2ggKi8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
dGVzdGFwaS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
dGVzdGFwaS5jCShyZXZpc2lvbiAxODk3MzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL3Rlc3RhcGkuYwkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1
ZGUgIkN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5oIgogI2luY2x1ZGUgIkV4ZWN1dGlvblRp
bWVMaW1pdFRlc3QuaCIKICNpbmNsdWRlICJHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3Qu
aCIKKyNpbmNsdWRlICJJbW1vcnRhbE9iamVjdHNUZXN0LmgiCiAjaW5jbHVkZSAiUGluZ1BvbmdT
dGFja092ZXJmbG93VGVzdC5oIgogCiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKQEAgLTE4OTMs
NiArMTg5NCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAKICAgICBmYWls
ZWQgPSB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkgfHwgZmFpbGVkOwogICAgIGZhaWxlZCA9IHRl
c3RHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplcigpIHx8IGZhaWxlZDsKKyAgICBmYWlsZWQgPSB0
ZXN0SW1tb3J0YWxPYmplY3RzKCkgfHwgZmFpbGVkOwogICAgIGZhaWxlZCA9IHRlc3RQaW5nUG9u
Z1N0YWNrT3ZlcmZsb3coKSB8fCBmYWlsZWQ7CiAKICAgICAvLyBDbGVhciBvdXQgbG9jYWwgdmFy
aWFibGVzIHBvaW50aW5nIGF0IEpTT2JqZWN0UmVmcyB0byBhbGxvdyB0aGVpciB2YWx1ZXMgdG8g
YmUgY29sbGVjdGVkCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MTg5NzM3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE3NjAsNiArMTc2MCw3IEBACiAJ
CUZFN0JBNjBGMUExQTdDRUMwMEYxRjdCNCAvKiBIZWFwVmVyaWZpZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU3QkE2MEQxQTFBN0NFQzAwRjFG
N0I0IC8qIEhlYXBWZXJpZmllci5jcHAgKi87IH07CiAJCUZFN0JBNjEwMUExQTdDRUMwMEYxRjdC
NCAvKiBIZWFwVmVyaWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZFN0JBNjBFMUExQTdDRUMwMEYxRjdCNCAvKiBIZWFwVmVyaWZpZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTdDNDE5NjFC
OTdGQzRCMDBGNEQ1OTggLyogUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRURBNTBENDFCOTdGNDQyMDA5
QTNCNEYgLyogUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHAgKi87IH07CisJCUZFOTdDMjY4
MUJBNzQzOTQwMEVGMThCNiAvKiBJbW1vcnRhbE9iamVjdHNUZXN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFOTdDMjY2MUJBNzQzNjQwMEVGMThC
NiAvKiBJbW1vcnRhbE9iamVjdHNUZXN0LmNwcCAqLzsgfTsKIAkJRkVBMDg2MjAxODJCN0EwNDAw
RjZEODUxIC8qIEJyZWFrcG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFQTA4NjFFMTgyQjdBMDQwMEY2RDg1MSAvKiBCcmVha3BvaW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkVBMDg2MjEx
ODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVBMDg2MUYxODJCN0EwNDAwRjZEODUxIC8q
IERlYnVnZ2VyUHJpbWl0aXZlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUZFQjUxRjZDMUE5N0I2ODgwMDFGOTIxQyAvKiBSZWdyZXNzMTQxODA5
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVCNTFG
NkIxQTk3QjY4ODAwMUY5MjFDIC8qIFJlZ3Jlc3MxNDE4MDkubW0gKi87IH07CkBAIC0zNjYxLDYg
KzM2NjIsOCBAQAogCQlGRTdCQTYwRDFBMUE3Q0VDMDBGMUY3QjQgLyogSGVhcFZlcmlmaWVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhlYXBWZXJpZmllci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFN0JBNjBFMUExQTdDRUMwMEYxRjdCNCAv
KiBIZWFwVmVyaWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGVhcFZl
cmlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFOTBCQjNBMUI3Q0Y2NEUw
MDZCM0YwMyAvKiBWTUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Vk1JbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFOTdDMjY2MUJBNzQz
NjQwMEVGMThCNiAvKiBJbW1vcnRhbE9iamVjdHNUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IEltbW9ydGFsT2JqZWN0c1Rlc3QuY3BwOyBwYXRoID0gQVBJL3Rl
c3RzL0ltbW9ydGFsT2JqZWN0c1Rlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGRTk3QzI2NzFCQTc0MzY0MDBFRjE4QjYgLyogSW1tb3J0YWxPYmplY3RzVGVzdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbW1vcnRhbE9iamVjdHNUZXN0Lmg7IHBhdGgg
PSBBUEkvdGVzdHMvSW1tb3J0YWxPYmplY3RzVGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGRUEwODYxRTE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCcmVha3BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUZFQTA4NjFGMTgyQjdBMDQwMEY2RDg1MSAvKiBEZWJ1Z2dlclByaW1pdGl2
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVidWdnZXJQcmltaXRpdmVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQjUxRjZBMUE5N0I2ODgwMDFGOTIx
QyAvKiBSZWdyZXNzMTQxODA5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJl
Z3Jlc3MxNDE4MDkuaDsgcGF0aCA9IEFQSS90ZXN0cy9SZWdyZXNzMTQxODA5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MDM5LDYgKzQwNDIsOCBAQAogCQkJCUZFMEQ0QTA1MUFC
OEREMEEwMDJGNTRCRiAvKiBFeGVjdXRpb25UaW1lTGltaXRUZXN0LmggKi8sCiAJCQkJRkUwRDRB
MDcxQUJBMjQzNzAwMkY1NEJGIC8qIEdsb2JhbENvbnRleHRXaXRoRmluYWxpemVyVGVzdC5jcHAg
Ki8sCiAJCQkJRkUwRDRBMDgxQUJBMjQzNzAwMkY1NEJGIC8qIEdsb2JhbENvbnRleHRXaXRoRmlu
YWxpemVyVGVzdC5oICovLAorCQkJCUZFOTdDMjY2MUJBNzQzNjQwMEVGMThCNiAvKiBJbW1vcnRh
bE9iamVjdHNUZXN0LmNwcCAqLywKKwkJCQlGRTk3QzI2NzFCQTc0MzY0MDBFRjE4QjYgLyogSW1t
b3J0YWxPYmplY3RzVGVzdC5oICovLAogCQkJCUMyMTgxRkMwMThBOTQ4RkIwMDI1QTIzNSAvKiBK
U0V4cG9ydFRlc3RzLmggKi8sCiAJCQkJQzIxODFGQzExOEE5NDhGQjAwMjVBMjM1IC8qIEpTRXhw
b3J0VGVzdHMubW0gKi8sCiAJCQkJRkVEQTUwRDQxQjk3RjQ0MjAwOUEzQjRGIC8qIFBpbmdQb25n
U3RhY2tPdmVyZmxvd1Rlc3QuY3BwICovLApAQCAtNzMzNyw2ICs3MzQyLDcgQEAKIAkJCQlGRTdD
NDE5NjFCOTdGQzRCMDBGNEQ1OTggLyogUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGRTBENEEwOTFBQkEyNDM3MDAyRjU0QkYgLyogR2xvYmFsQ29udGV4
dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1NTcwRjVBMUFBNEMz
RUEwMDlCM0MyMyAvKiBSZWdyZXNzMTQxMjc1Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRkU5N0My
NjgxQkE3NDM5NDAwRUYxOEI2IC8qIEltbW9ydGFsT2JqZWN0c1Rlc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzI5RUNCMDMxODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxv
Y2tHZXR0ZXJUZXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVCNTFGNkMxQTk3QjY4ODAwMUY5
MjFDIC8qIFJlZ3Jlc3MxNDE4MDkubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMjAzMjgyMDE5ODE5
NzlEMDA4OEI0OTkgLyogQ3VzdG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMgaW4gU291cmNlcyAq
LywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxODk3Mzcp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTI5NSw5ICsxMjk1LDYgQEAgdm9pZCBIZWFwOjpkaWRGaW5pc2hDb2xsZWN0aW9uKGRvdWJs
ZSBnYwogICAgIGlmIChPcHRpb25zOjp1c2Vab21iaWVNb2RlKCkpCiAgICAgICAgIHpvbWJpZnlE
ZWFkT2JqZWN0cygpOwogCi0gICAgaWYgKE9wdGlvbnM6Om9iamVjdHNBcmVJbW1vcnRhbCgpKQot
ICAgICAgICBtYXJrRGVhZE9iamVjdHMoKTsKLQogICAgIGlmIChPcHRpb25zOjpzaG93T2JqZWN0
U3RhdGlzdGljcygpKQogICAgICAgICBIZWFwU3RhdGlzdGljczo6c2hvd09iamVjdFN0YXRpc3Rp
Y3ModGhpcyk7CiAKQEAgLTEzMTksMTIgKzEzMTYsNiBAQCB2b2lkIEhlYXA6OnJlc3VtZUNvbXBp
bGVyVGhyZWFkcygpCiAjZW5kaWYKIH0KIAotdm9pZCBIZWFwOjptYXJrRGVhZE9iamVjdHMoKQot
ewotICAgIEhlYXBJdGVyYXRpb25TY29wZSBpdGVyYXRpb25TY29wZSgqdGhpcyk7Ci0gICAgbV9v
YmplY3RTcGFjZS5mb3JFYWNoRGVhZENlbGw8TWFya09iamVjdD4oaXRlcmF0aW9uU2NvcGUpOwot
fQotCiB2b2lkIEhlYXA6OnNldEZ1bGxBY3Rpdml0eUNhbGxiYWNrKFBhc3NSZWZQdHI8RnVsbEdD
QWN0aXZpdHlDYWxsYmFjaz4gYWN0aXZpdHlDYWxsYmFjaykKIHsKICAgICBtX2Z1bGxBY3Rpdml0
eUNhbGxiYWNrID0gYWN0aXZpdHlDYWxsYmFjazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmgJKHJldmlzaW9uIDE4OTczNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuaAkod29ya2luZyBjb3B5KQpAQCAtMzI0LDcgKzMyNCw2IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRGaW5pc2hDb2xsZWN0aW9uKGRvdWJsZSBnY1N0YXJ0VGltZSk7CiAgICAgdm9pZCByZXN1
bWVDb21waWxlclRocmVhZHMoKTsKICAgICB2b2lkIHpvbWJpZnlEZWFkT2JqZWN0cygpOwotICAg
IHZvaWQgbWFya0RlYWRPYmplY3RzKCk7CiAKICAgICB2b2lkIHN3ZWVwQWxsTG9naWNhbGx5RW1w
dHlXZWFrQmxvY2tzKCk7CiAgICAgYm9vbCBzd2VlcE5leHRMb2dpY2FsbHlFbXB0eVdlYWtCbG9j
aygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAko
cmV2aXNpb24gMTg5NzM3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxv
Y2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSw3IEBAIE1hcmtlZEJsb2NrOjpGcmVl
TGlzdCBNYXJrZWRCbG9jazo6c3BlY2kKICAgICAvLyBvcmRlciBvZiB0aGUgZnJlZSBsaXN0Lgog
ICAgIEZyZWVDZWxsKiBoZWFkID0gMDsKICAgICBzaXplX3QgY291bnQgPSAwOworICAgIGNvbnN0
IGJvb2wgbmVlZEZyZWVMaXN0aW5nID0gKHN3ZWVwTW9kZSA9PSBTd2VlcFRvRnJlZUxpc3QpICYm
IChibG9ja1N0YXRlID09IE5ldyB8fCAhT3B0aW9uczo6b2JqZWN0c0FyZUltbW9ydGFsKCkpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSBmaXJzdEF0b20oKTsgaSA8IG1fZW5kQXRvbTsgaSArPSBtX2F0
b21zUGVyQ2VsbCkgewogICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PSBNYXJrZWQgJiYgKG1fbWFy
a3MuZ2V0KGkpIHx8IChtX25ld2x5QWxsb2NhdGVkICYmIG1fbmV3bHlBbGxvY2F0ZWQtPmdldChp
KSkpKQogICAgICAgICAgICAgY29udGludWU7CkBAIC05NCw3ICs5NSw3IEBAIE1hcmtlZEJsb2Nr
OjpGcmVlTGlzdCBNYXJrZWRCbG9jazo6c3BlY2kKICAgICAgICAgaWYgKGNhbGxEZXN0cnVjdG9y
cyAmJiBibG9ja1N0YXRlICE9IE5ldykKICAgICAgICAgICAgIGNhbGxEZXN0cnVjdG9yKGNlbGwp
OwogCi0gICAgICAgIGlmIChzd2VlcE1vZGUgPT0gU3dlZXBUb0ZyZWVMaXN0KSB7CisgICAgICAg
IGlmIChuZWVkRnJlZUxpc3RpbmcpIHsKICAgICAgICAgICAgIEZyZWVDZWxsKiBmcmVlQ2VsbCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8RnJlZUNlbGwqPihjZWxsKTsKICAgICAgICAgICAgIGZyZWVDZWxs
LT5uZXh0ID0gaGVhZDsKICAgICAgICAgICAgIGhlYWQgPSBmcmVlQ2VsbDsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAJKHJldmlzaW9uIDE4OTczNykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjU1LDYgKzI1NSw5IEBAIHN0cnVjdCBTaHJpbmsgOiBNYXJrZWRCbG9jazo6Vm9p
ZEZ1bmN0b3IKIAogdm9pZCBNYXJrZWRTcGFjZTo6c2hyaW5rKCkKIHsKKyAgICBpZiAoT3B0aW9u
czo6b2JqZWN0c0FyZUltbW9ydGFsKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIEZyZWUgZnJl
ZU9yU2hyaW5rKEZyZWU6OkZyZWVPclNocmluaywgdGhpcyk7CiAgICAgZm9yRWFjaEJsb2NrKGZy
ZWVPclNocmluayk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>