From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============6913055259448937714==" MIME-Version: 1.0 From: Darren Bilby Subject: Re: [Luv] Results and a few questions Date: Thu, 29 Oct 2015 00:54:51 +0000 Message-ID: In-Reply-To: <1446071158.17978.1.camel@ranerica-desk01> List-Id: To: chipsec@lists.01.org --===============6913055259448937714== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable I'm actually not convinced Chipsec on LUV has ever worked. The configuration in setup.py for Chipsec doesn't include the XML files in the deployment, thus no XML files in LUV, and therefore the errors. There is a fix for it in a pull request here https://github.com/chipsec/chipsec/pull/7 but there are a bunch of other very old pull requests that don't seem to be being looked at. On Thu, Oct 29, 2015 at 9:26 AM Ricardo Neri < ricardo.neri-calderon@linux.intel.com> wrote: > Actually including the CHIPSEC mailing list this time. > On Mon, 2015-10-26 at 19:51 +0000, Neri, Ricardo wrote: > > +CHIPSEC mailing list > > > > Hi Jason, > > > > Thanks for your report. > > > > On Mon, 2015-10-26 at 12:04 -0700, Jason Barbier wrote: > > > Hey all, > > > I ran LUV-Live and my results are attached as a zip, I sort of was > > > wondering about the errors in the chipsec log though, > > > These were similar errors that I got last week that caused some issues > > > with my clock being reset using version 1.2, the latest RC seems to n= ot > > > do that but It still can not seem to run all the tests. > > > > > > -- > > > WARNING: 'SPIBAR' MMIO BAR definition not found/correct in XML config > > > [pci] reading B/D/F: 0/31/0, offset: 0xF0, value: 0xFED1C001 > > > [spi] SPI MMIO base: 0x00000000FED1F800 (assuming below 4GB) > > > [spi] SPI MMIO base: 0x00000000FED1F800 (assuming below 4GB) > > > [-] Traceback (most recent call last): > > > File "/usr/lib/python2.7/site-packages/chipsec_main.py", line 291, = in > > > run_module > > > result =3D modx.run( module_argv ) > > > File "/usr/lib/python2.7/site-packages/chipsec/module.py", line 69, > in > > > run > > > result =3D self.get_module_object() > > > File "/usr/lib/python2.7/site-packages/chipsec/module.py", line 101, > > > in get_module_object > > > self.mod_obj =3D iref() > > > File > > > "/usr/lib/python2.7/site-packages/chipsec/modules/common/bios_wp.py= ", > > > line 51, in __init__ > > > self.spi =3D SPI( self.cs ) > > > File "/usr/lib/python2.7/site-packages/chipsec/hal/spi.py", line 17= 6, > > > in __init__ > > > self.hsfs_off =3D int(chipsec.chipset.get_register_def( self.cs, > > > "HSFS" )['offset'],16) > > > File "/usr/lib/python2.7/site-packages/chipsec/chipset.py", line 46= 7, > > > in get_register_def > > > return _cs.Cfg.REGISTERS[ reg_name ] > > > KeyError: 'HSFS' > > > -- > > > [-] Traceback (most recent call last): > > > File "/usr/lib/python2.7/site-packages/chipsec_main.py", line 291, = in > > > run_module > > > result =3D modx.run( module_argv ) > > > File "/usr/lib/python2.7/site-packages/chipsec/module.py", line 80, > in > > > run > > > result =3D self.mod_obj.run(module_argv) > > > File > > > > "/usr/lib/python2.7/site-packages/chipsec/modules/common/spi_desc.py", > > > line 68, in run > > > return self.check_flash_access_permissions() > > > File > > > > "/usr/lib/python2.7/site-packages/chipsec/modules/common/spi_desc.py", > > > line 48, in check_flash_access_permissions > > > frap =3D chipsec.chipset.read_register( self.cs, 'FRAP' ) > > > File "/usr/lib/python2.7/site-packages/chipsec/chipset.py", line 47= 0, > > > in read_register > > > reg =3D _cs.Cfg.REGISTERS[ reg_name ] > > > KeyError: 'FRAP' > > > > > > ERROR: Exception occurred during chipsec.modules.common.spi_desc.run(= ): > > > ''FRAP'' > > > -- > > > [-] Traceback (most recent call last): > > > File "/usr/lib/python2.7/site-packages/chipsec_main.py", line 291, = in > > > run_module > > > result =3D modx.run( module_argv ) > > > File "/usr/lib/python2.7/site-packages/chipsec/module.py", line 80, > in > > > run > > > result =3D self.mod_obj.run(module_argv) > > > File > > > > "/usr/lib/python2.7/site-packages/chipsec/modules/common/spi_lock.py", > > > line 59, in run > > > return self.check_spi_lock() > > > File > > > > "/usr/lib/python2.7/site-packages/chipsec/modules/common/spi_lock.py", > > > line 46, in check_spi_lock > > > hsfs_reg =3D chipsec.chipset.read_register( self.cs, 'HSFS' ) > > > File "/usr/lib/python2.7/site-packages/chipsec/chipset.py", line 47= 0, > > > in read_register > > > reg =3D _cs.Cfg.REGISTERS[ reg_name ] > > > KeyError: 'HSFS' > > > > > > ERROR: Exception occurred during chipsec.modules.common.spi_lock.run(= ): > > > ''HSFS'' > > > -- > > > > > I added the CHIPSEC mailing list. Perhaps they can give further insight > > on what the problem might be. > > > > As per LUV, it seems that this exception somehow caused a crash in the > > LUV test manager and it prevented it from running the tests of the > > tests. It seems we need to add some safeguards so that LUV can handle > > these errors more gracefully. > > > > Thanks and BR, > > Ricardo > > > > > > > > _______________________________________________ > > > Luv mailing list > > > Luv(a)lists.01.org > > > https://lists.01.org/mailman/listinfo/luv > > > > _______________________________________________ > > Luv mailing list > > Luv(a)lists.01.org > > https://lists.01.org/mailman/listinfo/luv > > > _______________________________________________ > chipsec mailing list > chipsec(a)lists.01.org > https://lists.01.org/mailman/listinfo/chipsec > --===============6913055259448937714== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGRpdiBkaXI9Imx0ciI+SSYjMzk7bSBhY3R1YWxseSBub3QgY29udmluY2VkIENoaXBzZWMgb24g TFVWIGhhcyBldmVyIHdvcmtlZC7CoDxkaXY+VGhlIGNvbmZpZ3VyYXRpb24gaW4gc2V0dXAucHkg Zm9yIENoaXBzZWMgZG9lc24mIzM5O3QgaW5jbHVkZSB0aGUgWE1MIGZpbGVzIGluIHRoZSBkZXBs b3ltZW50LCB0aHVzIG5vIFhNTCBmaWxlcyBpbiBMVVYsIGFuZCB0aGVyZWZvcmUgdGhlIGVycm9y cy7CoDwvZGl2PjxkaXY+VGhlcmUgaXMgYSBmaXggZm9yIGl0IGluIGEgcHVsbCByZXF1ZXN0IGhl cmUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NoaXBzZWMvY2hpcHNlYy9wdWxsLzciPmh0 dHBzOi8vZ2l0aHViLmNvbS9jaGlwc2VjL2NoaXBzZWMvcHVsbC83PC9hPsKgYnV0IHRoZXJlIGFy ZSBhIGJ1bmNoIG9mIG90aGVyIHZlcnkgb2xkIHB1bGwgcmVxdWVzdHMgdGhhdCBkb24mIzM5O3Qg c2VlbSB0byBiZSBiZWluZyBsb29rZWQgYXQuwqA8L2Rpdj48L2Rpdj48YnI+PGRpdiBjbGFzcz0i Z21haWxfcXVvdGUiPjxkaXYgZGlyPSJsdHIiPk9uIFRodSwgT2N0IDI5LCAyMDE1IGF0IDk6MjYg QU0gUmljYXJkbyBOZXJpICZsdDs8YSBocmVmPSJtYWlsdG86cmljYXJkby5uZXJpLWNhbGRlcm9u QGxpbnV4LmludGVsLmNvbSI+cmljYXJkby5uZXJpLWNhbGRlcm9uQGxpbnV4LmludGVsLmNvbTwv YT4mZ3Q7IHdyb3RlOjxicj48L2Rpdj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0 eWxlPSJtYXJnaW46MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5n LWxlZnQ6MWV4Ij5BY3R1YWxseSBpbmNsdWRpbmcgdGhlIENISVBTRUMgbWFpbGluZyBsaXN0IHRo aXMgdGltZS48YnI+Ck9uIE1vbiwgMjAxNS0xMC0yNiBhdCAxOTo1MSArMDAwMCwgTmVyaSwgUmlj YXJkbyB3cm90ZTo8YnI+CiZndDsgK0NISVBTRUMgbWFpbGluZyBsaXN0PGJyPgomZ3Q7PGJyPgom Z3Q7IEhpIEphc29uLDxicj4KJmd0Ozxicj4KJmd0OyBUaGFua3MgZm9yIHlvdXIgcmVwb3J0Ljxi cj4KJmd0Ozxicj4KJmd0OyBPbiBNb24sIDIwMTUtMTAtMjYgYXQgMTI6MDQgLTA3MDAsIEphc29u IEJhcmJpZXIgd3JvdGU6PGJyPgomZ3Q7ICZndDsgSGV5IGFsbCw8YnI+CiZndDsgJmd0OyBJIHJh biBMVVYtTGl2ZSBhbmQgbXkgcmVzdWx0cyBhcmUgYXR0YWNoZWQgYXMgYSB6aXAsIEkgc29ydCBv ZiB3YXM8YnI+CiZndDsgJmd0OyB3b25kZXJpbmcgYWJvdXQgdGhlIGVycm9ycyBpbiB0aGUgY2hp cHNlYyBsb2cgdGhvdWdoLDxicj4KJmd0OyAmZ3Q7IFRoZXNlIHdlcmUgc2ltaWxhciBlcnJvcnMg dGhhdCBJIGdvdCBsYXN0IHdlZWsgdGhhdCBjYXVzZWQgc29tZSBpc3N1ZXM8YnI+CiZndDsgJmd0 OyB3aXRoIG15IGNsb2NrIGJlaW5nIHJlc2V0IHVzaW5nIHZlcnNpb24gMS4yLCB0aGUgbGF0ZXN0 IFJDIHNlZW1zIHRvIG5vdDxicj4KJmd0OyAmZ3Q7IGRvIHRoYXQgYnV0IEl0IHN0aWxsIGNhbiBu b3Qgc2VlbSB0byBydW4gYWxsIHRoZSB0ZXN0cy48YnI+CiZndDsgJmd0Ozxicj4KJmd0OyAmZ3Q7 IC0tPGJyPgomZ3Q7ICZndDsgV0FSTklORzogJiMzOTtTUElCQVImIzM5OyBNTUlPIEJBUiBkZWZp bml0aW9uIG5vdCBmb3VuZC9jb3JyZWN0IGluIFhNTCBjb25maWc8YnI+CiZndDsgJmd0OyBbcGNp XSByZWFkaW5nIEIvRC9GOiAwLzMxLzAsIG9mZnNldDogMHhGMCwgdmFsdWU6IDB4RkVEMUMwMDE8 YnI+CiZndDsgJmd0OyBbc3BpXSBTUEkgTU1JTyBiYXNlOiAweDAwMDAwMDAwRkVEMUY4MDAgKGFz c3VtaW5nIGJlbG93IDRHQik8YnI+CiZndDsgJmd0OyBbc3BpXSBTUEkgTU1JTyBiYXNlOiAweDAw MDAwMDAwRkVEMUY4MDAgKGFzc3VtaW5nIGJlbG93IDRHQik8YnI+CiZndDsgJmd0OyBbLV0gVHJh Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOjxicj4KJmd0OyAmZ3Q7wqAgwqBGaWxlICZx dW90Oy91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL2NoaXBzZWNfbWFpbi5weSZxdW90 OywgbGluZSAyOTEsIGluPGJyPgomZ3Q7ICZndDvCoCDCoHJ1bl9tb2R1bGU8YnI+CiZndDsgJmd0 O8KgIMKgIMKgcmVzdWx0ID0gbW9keC5ydW4oIG1vZHVsZV9hcmd2ICk8YnI+CiZndDsgJmd0O8Kg IMKgRmlsZSAmcXVvdDsvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy9jaGlwc2VjL21v ZHVsZS5weSZxdW90OywgbGluZSA2OSwgaW48YnI+CiZndDsgJmd0O8KgIMKgcnVuPGJyPgomZ3Q7 ICZndDvCoCDCoCDCoHJlc3VsdCA9IHNlbGYuZ2V0X21vZHVsZV9vYmplY3QoKTxicj4KJmd0OyAm Z3Q7wqAgwqBGaWxlICZxdW90Oy91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL2NoaXBz ZWMvbW9kdWxlLnB5JnF1b3Q7LCBsaW5lIDEwMSw8YnI+CiZndDsgJmd0O8KgIMKgaW4gZ2V0X21v ZHVsZV9vYmplY3Q8YnI+CiZndDsgJmd0O8KgIMKgIMKgc2VsZi5tb2Rfb2JqID0gaXJlZigpPGJy PgomZ3Q7ICZndDvCoCDCoEZpbGU8YnI+CiZndDsgJmd0O8KgIMKgJnF1b3Q7L3Vzci9saWIvcHl0 aG9uMi43L3NpdGUtcGFja2FnZXMvY2hpcHNlYy9tb2R1bGVzL2NvbW1vbi9iaW9zX3dwLnB5JnF1 b3Q7LDxicj4KJmd0OyAmZ3Q7wqAgwqBsaW5lIDUxLCBpbiBfX2luaXRfXzxicj4KJmd0OyAmZ3Q7 wqAgwqAgwqBzZWxmLnNwacKgIMKgID0gU1BJKCBzZWxmLmNzICk8YnI+CiZndDsgJmd0O8KgIMKg RmlsZSAmcXVvdDsvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy9jaGlwc2VjL2hhbC9z cGkucHkmcXVvdDssIGxpbmUgMTc2LDxicj4KJmd0OyAmZ3Q7wqAgwqBpbiBfX2luaXRfXzxicj4K Jmd0OyAmZ3Q7wqAgwqAgwqBzZWxmLmhzZnNfb2ZmwqAgwqA9IGludChjaGlwc2VjLmNoaXBzZXQu Z2V0X3JlZ2lzdGVyX2RlZiggc2VsZi5jcyw8YnI+CiZndDsgJmd0O8KgIMKgIMKgJnF1b3Q7SFNG UyZxdW90OyApWyYjMzk7b2Zmc2V0JiMzOTtdLDE2KTxicj4KJmd0OyAmZ3Q7wqAgwqBGaWxlICZx dW90Oy91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL2NoaXBzZWMvY2hpcHNldC5weSZx dW90OywgbGluZSA0NjcsPGJyPgomZ3Q7ICZndDvCoCDCoGluIGdldF9yZWdpc3Rlcl9kZWY8YnI+ CiZndDsgJmd0O8KgIMKgIMKgcmV0dXJuIF9jcy5DZmcuUkVHSVNURVJTWyByZWdfbmFtZSBdPGJy PgomZ3Q7ICZndDsgS2V5RXJyb3I6ICYjMzk7SFNGUyYjMzk7PGJyPgomZ3Q7ICZndDsgLS08YnI+ CiZndDsgJmd0OyBbLV0gVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOjxicj4KJmd0 OyAmZ3Q7wqAgwqBGaWxlICZxdW90Oy91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL2No aXBzZWNfbWFpbi5weSZxdW90OywgbGluZSAyOTEsIGluPGJyPgomZ3Q7ICZndDvCoCDCoHJ1bl9t b2R1bGU8YnI+CiZndDsgJmd0O8KgIMKgIMKgcmVzdWx0ID0gbW9keC5ydW4oIG1vZHVsZV9hcmd2 ICk8YnI+CiZndDsgJmd0O8KgIMKgRmlsZSAmcXVvdDsvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1w YWNrYWdlcy9jaGlwc2VjL21vZHVsZS5weSZxdW90OywgbGluZSA4MCwgaW48YnI+CiZndDsgJmd0 O8KgIMKgcnVuPGJyPgomZ3Q7ICZndDvCoCDCoCDCoHJlc3VsdCA9IHNlbGYubW9kX29iai5ydW4o bW9kdWxlX2FyZ3YpPGJyPgomZ3Q7ICZndDvCoCDCoEZpbGU8YnI+CiZndDsgJmd0O8KgIMKgJnF1 b3Q7L3Vzci9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMvY2hpcHNlYy9tb2R1bGVzL2NvbW1v bi9zcGlfZGVzYy5weSZxdW90Oyw8YnI+CiZndDsgJmd0O8KgIMKgbGluZSA2OCwgaW4gcnVuPGJy PgomZ3Q7ICZndDvCoCDCoCDCoHJldHVybiBzZWxmLmNoZWNrX2ZsYXNoX2FjY2Vzc19wZXJtaXNz aW9ucygpPGJyPgomZ3Q7ICZndDvCoCDCoEZpbGU8YnI+CiZndDsgJmd0O8KgIMKgJnF1b3Q7L3Vz ci9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMvY2hpcHNlYy9tb2R1bGVzL2NvbW1vbi9zcGlf ZGVzYy5weSZxdW90Oyw8YnI+CiZndDsgJmd0O8KgIMKgbGluZSA0OCwgaW4gY2hlY2tfZmxhc2hf YWNjZXNzX3Blcm1pc3Npb25zPGJyPgomZ3Q7ICZndDvCoCDCoCDCoGZyYXAgPSBjaGlwc2VjLmNo aXBzZXQucmVhZF9yZWdpc3Rlciggc2VsZi5jcywgJiMzOTtGUkFQJiMzOTsgKTxicj4KJmd0OyAm Z3Q7wqAgwqBGaWxlICZxdW90Oy91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL2NoaXBz ZWMvY2hpcHNldC5weSZxdW90OywgbGluZSA0NzAsPGJyPgomZ3Q7ICZndDvCoCDCoGluIHJlYWRf cmVnaXN0ZXI8YnI+CiZndDsgJmd0O8KgIMKgIMKgcmVnID0gX2NzLkNmZy5SRUdJU1RFUlNbIHJl Z19uYW1lIF08YnI+CiZndDsgJmd0OyBLZXlFcnJvcjogJiMzOTtGUkFQJiMzOTs8YnI+CiZndDsg Jmd0Ozxicj4KJmd0OyAmZ3Q7IEVSUk9SOiBFeGNlcHRpb24gb2NjdXJyZWQgZHVyaW5nIGNoaXBz ZWMubW9kdWxlcy5jb21tb24uc3BpX2Rlc2MucnVuKCk6PGJyPgomZ3Q7ICZndDsgJiMzOTsmIzM5 O0ZSQVAmIzM5OyYjMzk7PGJyPgomZ3Q7ICZndDsgLS08YnI+CiZndDsgJmd0OyBbLV0gVHJhY2Vi YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOjxicj4KJmd0OyAmZ3Q7wqAgwqBGaWxlICZxdW90 Oy91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL2NoaXBzZWNfbWFpbi5weSZxdW90Oywg bGluZSAyOTEsIGluPGJyPgomZ3Q7ICZndDvCoCDCoHJ1bl9tb2R1bGU8YnI+CiZndDsgJmd0O8Kg IMKgIMKgcmVzdWx0ID0gbW9keC5ydW4oIG1vZHVsZV9hcmd2ICk8YnI+CiZndDsgJmd0O8KgIMKg RmlsZSAmcXVvdDsvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy9jaGlwc2VjL21vZHVs ZS5weSZxdW90OywgbGluZSA4MCwgaW48YnI+CiZndDsgJmd0O8KgIMKgcnVuPGJyPgomZ3Q7ICZn dDvCoCDCoCDCoHJlc3VsdCA9IHNlbGYubW9kX29iai5ydW4obW9kdWxlX2FyZ3YpPGJyPgomZ3Q7 ICZndDvCoCDCoEZpbGU8YnI+CiZndDsgJmd0O8KgIMKgJnF1b3Q7L3Vzci9saWIvcHl0aG9uMi43 L3NpdGUtcGFja2FnZXMvY2hpcHNlYy9tb2R1bGVzL2NvbW1vbi9zcGlfbG9jay5weSZxdW90Oyw8 YnI+CiZndDsgJmd0O8KgIMKgbGluZSA1OSwgaW4gcnVuPGJyPgomZ3Q7ICZndDvCoCDCoCDCoHJl dHVybiBzZWxmLmNoZWNrX3NwaV9sb2NrKCk8YnI+CiZndDsgJmd0O8KgIMKgRmlsZTxicj4KJmd0 OyAmZ3Q7wqAgwqAmcXVvdDsvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy9jaGlwc2Vj L21vZHVsZXMvY29tbW9uL3NwaV9sb2NrLnB5JnF1b3Q7LDxicj4KJmd0OyAmZ3Q7wqAgwqBsaW5l IDQ2LCBpbiBjaGVja19zcGlfbG9jazxicj4KJmd0OyAmZ3Q7wqAgwqAgwqBoc2ZzX3JlZyA9IGNo aXBzZWMuY2hpcHNldC5yZWFkX3JlZ2lzdGVyKCBzZWxmLmNzLCAmIzM5O0hTRlMmIzM5OyApPGJy PgomZ3Q7ICZndDvCoCDCoEZpbGUgJnF1b3Q7L3Vzci9saWIvcHl0aG9uMi43L3NpdGUtcGFja2Fn ZXMvY2hpcHNlYy9jaGlwc2V0LnB5JnF1b3Q7LCBsaW5lIDQ3MCw8YnI+CiZndDsgJmd0O8KgIMKg aW4gcmVhZF9yZWdpc3Rlcjxicj4KJmd0OyAmZ3Q7wqAgwqAgwqByZWcgPSBfY3MuQ2ZnLlJFR0lT VEVSU1sgcmVnX25hbWUgXTxicj4KJmd0OyAmZ3Q7IEtleUVycm9yOiAmIzM5O0hTRlMmIzM5Ozxi cj4KJmd0OyAmZ3Q7PGJyPgomZ3Q7ICZndDsgRVJST1I6IEV4Y2VwdGlvbiBvY2N1cnJlZCBkdXJp bmcgY2hpcHNlYy5tb2R1bGVzLmNvbW1vbi5zcGlfbG9jay5ydW4oKTo8YnI+CiZndDsgJmd0OyAm IzM5OyYjMzk7SFNGUyYjMzk7JiMzOTs8YnI+CiZndDsgJmd0OyAtLTxicj4KJmd0OyAmZ3Q7PGJy PgomZ3Q7IEkgYWRkZWQgdGhlIENISVBTRUMgbWFpbGluZyBsaXN0LiBQZXJoYXBzIHRoZXkgY2Fu IGdpdmUgZnVydGhlciBpbnNpZ2h0PGJyPgomZ3Q7IG9uIHdoYXQgdGhlIHByb2JsZW0gbWlnaHQg YmUuPGJyPgomZ3Q7PGJyPgomZ3Q7IEFzIHBlciBMVVYsIGl0IHNlZW1zIHRoYXQgdGhpcyBleGNl cHRpb24gc29tZWhvdyBjYXVzZWQgYSBjcmFzaCBpbiB0aGU8YnI+CiZndDsgTFVWIHRlc3QgbWFu YWdlciBhbmQgaXQgcHJldmVudGVkIGl0IGZyb20gcnVubmluZyB0aGUgdGVzdHMgb2YgdGhlPGJy PgomZ3Q7IHRlc3RzLiBJdCBzZWVtcyB3ZSBuZWVkIHRvIGFkZCBzb21lIHNhZmVndWFyZHMgc28g dGhhdCBMVVYgY2FuIGhhbmRsZTxicj4KJmd0OyB0aGVzZSBlcnJvcnMgbW9yZSBncmFjZWZ1bGx5 Ljxicj4KJmd0Ozxicj4KJmd0OyBUaGFua3MgYW5kIEJSLDxicj4KJmd0OyBSaWNhcmRvPGJyPgom Z3Q7PGJyPgomZ3Q7ICZndDs8YnI+CiZndDsgJmd0OyBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXzxicj4KJmd0OyAmZ3Q7IEx1diBtYWlsaW5nIGxpc3Q8YnI+ CiZndDsgJmd0OyA8YSBocmVmPSJtYWlsdG86THV2QGxpc3RzLjAxLm9yZyIgdGFyZ2V0PSJfYmxh bmsiPkx1dkBsaXN0cy4wMS5vcmc8L2E+PGJyPgomZ3Q7ICZndDsgPGEgaHJlZj0iaHR0cHM6Ly9s aXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9sdXYiIHJlbD0ibm9yZWZlcnJlciIgdGFyZ2V0 PSJfYmxhbmsiPmh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vbHV2PC9hPjxi cj4KJmd0Ozxicj4KJmd0OyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXzxicj4KJmd0OyBMdXYgbWFpbGluZyBsaXN0PGJyPgomZ3Q7IDxhIGhyZWY9Im1haWx0 bzpMdXZAbGlzdHMuMDEub3JnIiB0YXJnZXQ9Il9ibGFuayI+THV2QGxpc3RzLjAxLm9yZzwvYT48 YnI+CiZndDsgPGEgaHJlZj0iaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9s dXYiIHJlbD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vbGlzdHMuMDEub3Jn L21haWxtYW4vbGlzdGluZm8vbHV2PC9hPjxicj4KPGJyPgo8YnI+Cl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPgpjaGlwc2VjIG1haWxpbmcgbGlzdDxi cj4KPGEgaHJlZj0ibWFpbHRvOmNoaXBzZWNAbGlzdHMuMDEub3JnIiB0YXJnZXQ9Il9ibGFuayI+ Y2hpcHNlY0BsaXN0cy4wMS5vcmc8L2E+PGJyPgo8YSBocmVmPSJodHRwczovL2xpc3RzLjAxLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2NoaXBzZWMiIHJlbD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxh bmsiPmh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vY2hpcHNlYzwvYT48YnI+ CjwvYmxvY2txdW90ZT48L2Rpdj4K --===============6913055259448937714==--