Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1232854 > unrolled thread
| Started by | Bastien Nocera <hadess@hadess.net> |
|---|---|
| First post | 2015-09-25 16:50 +0200 |
| Last post | 2015-10-01 16:50 +0200 |
| Articles | 6 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH v3 1/5] Input: goodix - reset device at init Bastien Nocera <hadess@hadess.net> - 2015-09-25 16:50 +0200
RE: [PATCH v3 1/5] Input: goodix - reset device at init "Tirdea, Irina" <irina.tirdea@intel.com> - 2015-09-25 23:10 +0200
Re: [PATCH v3 1/5] Input: goodix - reset device at init Bastien Nocera <hadess@hadess.net> - 2015-09-29 04:10 +0200
RE: [PATCH v3 1/5] Input: goodix - reset device at init "Tirdea, Irina" <irina.tirdea@intel.com> - 2015-09-29 19:50 +0200
Re: [PATCH v3 1/5] Input: goodix - reset device at init Bastien Nocera <hadess@hadess.net> - 2015-09-30 13:20 +0200
RE: [PATCH v3 1/5] Input: goodix - reset device at init "Tirdea, Irina" <irina.tirdea@intel.com> - 2015-10-01 16:50 +0200
| From | Bastien Nocera <hadess@hadess.net> |
|---|---|
| Date | 2015-09-25 16:50 +0200 |
| Subject | Re: [PATCH v3 1/5] Input: goodix - reset device at init |
| Message-ID | <qcCtX-4lE-13@gated-at.bofh.it> |
On Thu, 2015-09-10 at 14:04 +0000, Tirdea, Irina wrote: > > > -----Original Message----- > > From: Bastien Nocera [mailto:hadess@hadess.net] > > Sent: 09 September, 2015 20:03 > > To: Tirdea, Irina; linux-input@vger.kernel.org > > Cc: linux-kernel@vger.kernel.org; Rob Herring; Pawel Moll; Ian > > Campbell; Kumar Gala; Purdila, Octavian; Dmitry Torokhov; Mark > > Rutland; devicetree@vger.kernel.org > > Subject: Re: [PATCH v3 1/5] Input: goodix - reset device at init > > > > On Thu, 2015-07-30 at 11:27 +0000, Tirdea, Irina wrote: > > > I can send some additional patches that will simplify testing the > > > configuration update to the Goodix device. I think this feature > > > is > > > the easiest > > > to test so we can determine if writing to the interrupt pin > > > actually > > > works. > > > However, even if it is a BIOS problem and the code will work, the > > > warning > > > will still be printed in dmesg. > > > > > > Somehow missed this mail before replying to the current patchset. > > I'd > > be fine with that, though it's still not clear to me whether the > > BIOS/hardware is at fault, or the code that's being added to the > > driver > > ;) > > > > The reset procedure is described in the Goodix GT911 datasheet [1] > and is > used for power-on reset and power management. The power-on sequence > is described in chapter 6.1. I2C Timing, in the Power-on Timing > diagram. > The sequence for putting the device to sleep is described in chapter > 7.1. Operating Modes, c) Sleep mode. These sequences use the > interrupt > pin as output. > > The warning you mentioned comes from the following code in the goodix > driver, which sets the interrupt to be used as output: > > + error = gpiod_direction_output(ts->gpiod_int, ts->client- > >addr == 0x14); > > The gpiod_direction_output() call ends up in > drivers/pinctrl/intel/pinctrl-baytrail.c: > /* > * Before making any direction modifications, do a check if gpio > * is set for direct IRQ. On baytrail, setting GPIO to output does > * not make sense, so let's at least warn the caller before they > shoot > * themselves in the foot. > */ > WARN(readl(conf_reg) & BYT_DIRECT_IRQ_EN, > "Potential Error: Setting GPIO with direct_irq_en to output"); > > So the problem comes from using the gpio interrupt pin as output, > which > should not work on Baytrail if BYT_DIRECT_IRQ_EN is set by BIOS. > The above warning is introduced and discussed in [2] and [3]. As I > mentioned, > this could be a real HW issue or the BIOS sets BYT_DIRECT_IRQ_EN when > it should not. I have also tested these patches on a Baytrail > plarform > (that uses the same pinctrl driver), but I did not see any issues > since > BYT_DIRECT_IRQ_EN is not set in my case for the interrupt gpio pin. Do we have a way to work-around this in the GPIO driver? > To determine if using the interrupt pin as output works, you can test > updating > the goodix configuration [4]. Right, the problem being that it's a later patch in the branch, and that the driver will fail to probe if there's an error from the GPIO call. Would you have a patch for me to test that would bypass this error, or at least fallback gracefully to not resetting, not probing GPIOs if they're badly setup? Cheers -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | "Tirdea, Irina" <irina.tirdea@intel.com> |
|---|---|
| Date | 2015-09-25 23:10 +0200 |
| Message-ID | <qcIpH-4D0-1@gated-at.bofh.it> |
| In reply to | #1232854 |
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQmFzdGllbiBOb2NlcmEg W21haWx0bzpoYWRlc3NAaGFkZXNzLm5ldF0NCj4gU2VudDogMjUgU2VwdGVtYmVyLCAyMDE1IDE3 OjQ0DQo+IFRvOiBUaXJkZWEsIElyaW5hOyBsaW51eC1pbnB1dEB2Z2VyLmtlcm5lbC5vcmcNCj4g Q2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IFJvYiBIZXJyaW5nOyBQYXdlbCBNb2xs OyBJYW4gQ2FtcGJlbGw7IEt1bWFyIEdhbGE7IFB1cmRpbGEsIE9jdGF2aWFuOyBEbWl0cnkgVG9y b2tob3Y7IE1hcmsNCj4gUnV0bGFuZDsgZGV2aWNldHJlZUB2Z2VyLmtlcm5lbC5vcmcNCj4gU3Vi amVjdDogUmU6IFtQQVRDSCB2MyAxLzVdIElucHV0OiBnb29kaXggLSByZXNldCBkZXZpY2UgYXQg aW5pdA0KPiANCj4gT24gVGh1LCAyMDE1LTA5LTEwIGF0IDE0OjA0ICswMDAwLCBUaXJkZWEsIEly aW5hIHdyb3RlOg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4g RnJvbTogQmFzdGllbiBOb2NlcmEgW21haWx0bzpoYWRlc3NAaGFkZXNzLm5ldF0NCj4gPiA+IFNl bnQ6IDA5IFNlcHRlbWJlciwgMjAxNSAyMDowMw0KPiA+ID4gVG86IFRpcmRlYSwgSXJpbmE7IGxp bnV4LWlucHV0QHZnZXIua2VybmVsLm9yZw0KPiA+ID4gQ2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtl cm5lbC5vcmc7IFJvYiBIZXJyaW5nOyBQYXdlbCBNb2xsOyBJYW4NCj4gPiA+IENhbXBiZWxsOyBL dW1hciBHYWxhOyBQdXJkaWxhLCBPY3RhdmlhbjsgRG1pdHJ5IFRvcm9raG92OyBNYXJrDQo+ID4g PiBSdXRsYW5kOyBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZw0KPiA+ID4gU3ViamVjdDogUmU6 IFtQQVRDSCB2MyAxLzVdIElucHV0OiBnb29kaXggLSByZXNldCBkZXZpY2UgYXQgaW5pdA0KPiA+ ID4NCj4gPiA+IE9uIFRodSwgMjAxNS0wNy0zMCBhdCAxMToyNyArMDAwMCwgVGlyZGVhLCBJcmlu YSB3cm90ZToNCj4gPiA+ID4gSSBjYW4gc2VuZCBzb21lIGFkZGl0aW9uYWwgcGF0Y2hlcyB0aGF0 IHdpbGwgc2ltcGxpZnkgdGVzdGluZyB0aGUNCj4gPiA+ID4gY29uZmlndXJhdGlvbiB1cGRhdGUg dG8gdGhlIEdvb2RpeCBkZXZpY2UuIEkgdGhpbmsgdGhpcyBmZWF0dXJlDQo+ID4gPiA+IGlzDQo+ ID4gPiA+IHRoZSBlYXNpZXN0DQo+ID4gPiA+IHRvIHRlc3Qgc28gd2UgY2FuIGRldGVybWluZSBp ZiB3cml0aW5nIHRvIHRoZSBpbnRlcnJ1cHQgcGluDQo+ID4gPiA+IGFjdHVhbGx5DQo+ID4gPiA+ IHdvcmtzLg0KPiA+ID4gPiBIb3dldmVyLCBldmVuIGlmIGl0IGlzIGEgQklPUyBwcm9ibGVtIGFu ZCB0aGUgY29kZSB3aWxsIHdvcmssIHRoZQ0KPiA+ID4gPiB3YXJuaW5nDQo+ID4gPiA+IHdpbGwg c3RpbGwgYmUgcHJpbnRlZCBpbiBkbWVzZy4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gU29tZWhvdyBt aXNzZWQgdGhpcyBtYWlsIGJlZm9yZSByZXBseWluZyB0byB0aGUgY3VycmVudCBwYXRjaHNldC4N Cj4gPiA+IEknZA0KPiA+ID4gYmUgZmluZSB3aXRoIHRoYXQsIHRob3VnaCBpdCdzIHN0aWxsIG5v dCBjbGVhciB0byBtZSB3aGV0aGVyIHRoZQ0KPiA+ID4gQklPUy9oYXJkd2FyZSBpcyBhdCBmYXVs dCwgb3IgdGhlIGNvZGUgdGhhdCdzIGJlaW5nIGFkZGVkIHRvIHRoZQ0KPiA+ID4gZHJpdmVyDQo+ ID4gPiA7KQ0KPiA+ID4NCj4gPg0KPiA+IFRoZSByZXNldCBwcm9jZWR1cmUgaXMgZGVzY3JpYmVk IGluIHRoZSBHb29kaXggR1Q5MTEgZGF0YXNoZWV0IFsxXQ0KPiA+IGFuZCBpcw0KPiA+IHVzZWQg Zm9yIHBvd2VyLW9uIHJlc2V0IGFuZCBwb3dlciBtYW5hZ2VtZW50LiBUaGUgcG93ZXItb24gc2Vx dWVuY2UNCj4gPiBpcyBkZXNjcmliZWQgaW4gY2hhcHRlciA2LjEuIEkyQyBUaW1pbmcsIGluIHRo ZSBQb3dlci1vbiBUaW1pbmcNCj4gPiBkaWFncmFtLg0KPiA+IFRoZSBzZXF1ZW5jZSBmb3IgcHV0 dGluZyB0aGUgZGV2aWNlIHRvIHNsZWVwIGlzIGRlc2NyaWJlZCBpbiBjaGFwdGVyDQo+ID4gNy4x LiBPcGVyYXRpbmcgTW9kZXMsIGMpIFNsZWVwIG1vZGUuIFRoZXNlIHNlcXVlbmNlcyB1c2UgdGhl DQo+ID4gaW50ZXJydXB0DQo+ID4gcGluIGFzIG91dHB1dC4NCj4gPg0KPiA+IFRoZSB3YXJuaW5n IHlvdSBtZW50aW9uZWQgY29tZXMgZnJvbSB0aGUgZm9sbG93aW5nIGNvZGUgaW4gdGhlIGdvb2Rp eA0KPiA+IGRyaXZlciwgd2hpY2ggc2V0cyB0aGUgaW50ZXJydXB0IHRvIGJlIHVzZWQgYXMgb3V0 cHV0Og0KPiA+DQo+ID4gK8KgwqDCoMKgwqDCoMKgZXJyb3IgPSBncGlvZF9kaXJlY3Rpb25fb3V0 cHV0KHRzLT5ncGlvZF9pbnQsIHRzLT5jbGllbnQtDQo+ID4gPmFkZHIgPT0gMHgxNCk7DQo+ID4N Cj4gPiBUaGUgZ3Bpb2RfZGlyZWN0aW9uX291dHB1dCgpIGNhbGwgZW5kcyB1cCBpbg0KPiA+IGRy aXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWJheXRyYWlsLmM6DQo+ID4gLyoNCj4gPiDCoCog QmVmb3JlIG1ha2luZyBhbnkgZGlyZWN0aW9uIG1vZGlmaWNhdGlvbnMsIGRvIGEgY2hlY2sgaWYg Z3Bpbw0KPiA+IMKgKiBpcyBzZXQgZm9yIGRpcmVjdCBJUlEuwqDCoE9uIGJheXRyYWlsLCBzZXR0 aW5nIEdQSU8gdG8gb3V0cHV0IGRvZXMNCj4gPiDCoCogbm90IG1ha2Ugc2Vuc2UsIHNvIGxldCdz IGF0IGxlYXN0IHdhcm4gdGhlIGNhbGxlciBiZWZvcmUgdGhleQ0KPiA+IHNob290DQo+ID4gwqAq IHRoZW1zZWx2ZXMgaW4gdGhlIGZvb3QuDQo+ID4gwqAqLw0KPiA+IFdBUk4ocmVhZGwoY29uZl9y ZWcpICYgQllUX0RJUkVDVF9JUlFfRU4sDQo+ID4gCSJQb3RlbnRpYWwgRXJyb3I6IFNldHRpbmcg R1BJTyB3aXRoIGRpcmVjdF9pcnFfZW4gdG8gb3V0cHV0Iik7DQo+ID4NCj4gPiBTbyB0aGUgcHJv YmxlbSBjb21lcyBmcm9tIHVzaW5nIHRoZSBncGlvIGludGVycnVwdCBwaW4gYXMgb3V0cHV0LA0K PiA+IHdoaWNoDQo+ID4gc2hvdWxkIG5vdCB3b3JrIG9uIEJheXRyYWlsIGlmIEJZVF9ESVJFQ1Rf SVJRX0VOIGlzIHNldCBieSBCSU9TLg0KPiA+IFRoZSBhYm92ZSB3YXJuaW5nIGlzIGludHJvZHVj ZWQgYW5kIGRpc2N1c3NlZCBpbiBbMl0gYW5kIFszXS4gQXMgSQ0KPiA+IG1lbnRpb25lZCwNCj4g PiB0aGlzIGNvdWxkIGJlIGEgcmVhbCBIVyBpc3N1ZSBvciB0aGUgQklPUyBzZXRzIEJZVF9ESVJF Q1RfSVJRX0VOIHdoZW4NCj4gPiBpdCBzaG91bGQgbm90LiBJIGhhdmUgYWxzbyB0ZXN0ZWQgdGhl c2UgcGF0Y2hlcyBvbiBhIEJheXRyYWlsDQo+ID4gcGxhcmZvcm0NCj4gPiAodGhhdCB1c2VzIHRo ZSBzYW1lIHBpbmN0cmwgZHJpdmVyKSwgYnV0IEkgZGlkIG5vdCBzZWUgYW55IGlzc3Vlcw0KPiA+ IHNpbmNlDQo+ID4gQllUX0RJUkVDVF9JUlFfRU4gaXMgbm90IHNldCBpbiBteSBjYXNlIGZvciB0 aGUgaW50ZXJydXB0IGdwaW8gcGluLg0KPiANCj4gRG8gd2UgaGF2ZSBhIHdheSB0byB3b3JrLWFy b3VuZCB0aGlzIGluIHRoZSBHUElPIGRyaXZlcj8NCj4gDQo+ID4gVG8gZGV0ZXJtaW5lIGlmIHVz aW5nIHRoZSBpbnRlcnJ1cHQgcGluIGFzIG91dHB1dCB3b3JrcywgeW91IGNhbiB0ZXN0DQo+ID4g dXBkYXRpbmcNCj4gPiB0aGUgZ29vZGl4IGNvbmZpZ3VyYXRpb24gWzRdLg0KPiANCj4gUmlnaHQs IHRoZSBwcm9ibGVtIGJlaW5nIHRoYXQgaXQncyBhIGxhdGVyIHBhdGNoIGluIHRoZSBicmFuY2gs IGFuZA0KPiB0aGF0IHRoZSBkcml2ZXIgd2lsbCBmYWlsIHRvIHByb2JlIGlmIHRoZXJlJ3MgYW4g ZXJyb3IgZnJvbSB0aGUgR1BJTw0KPiBjYWxsLg0KPiANCg0KVGhlIHdhcm5pbmcgZnJvbSB5b3Vy IGRtZXNnIG91dHB1dCB3aWxsIG5vdCBjYXVzZSBwcm9iZSB0byBmYWlsLg0KSWYgeW91IGxvb2sg YXQgdGhlIGNvZGUgZm9yIGJ5dF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQsIGl0IHdpbGwganVzdCBw cmludA0KYSB3YXJuaW5nIGFuZCBjb250aW51ZSBbMV06DQoJV0FSTihyZWFkbChjb25mX3JlZykg JiBCWVRfRElSRUNUX0lSUV9FTiwNCgkJIlBvdGVudGlhbCBFcnJvcjogU2V0dGluZyBHUElPIHdp dGggZGlyZWN0X2lycV9lbiB0byBvdXRwdXQiKTsNCkkgdGhvdWdodCBwcm9iZSBmaW5pc2hlcyBz dWNjZXNzZnVsbHksIGJ1dCBkdWUgdG8gdGhlIHdhcm5pbmcgaW4gZG1lc2cgeW91DQphcmUgbm90 IHN1cmUgd2hldGhlciB0aGUgSVJRIEdQSU8gcGluIGNhbiBiZSB1c2VkIGFzIG91dHB1dC4NCklm IHByb2JlIGZhaWxzLCBpdCBtdXN0IGJlIGZvciBhbm90aGVyIHJlYXNvbiB0aGFuIHRoZSBkaXJl Y3RfaXJxX2VuIHdhcm5pbmcuDQoNCj4gV291bGQgeW91IGhhdmUgYSBwYXRjaCBmb3IgbWUgdG8g dGVzdCB0aGF0IHdvdWxkIGJ5cGFzcyB0aGlzIGVycm9yLCBvcg0KPiBhdCBsZWFzdCBmYWxsYmFj ayBncmFjZWZ1bGx5IHRvIG5vdCByZXNldHRpbmcsIG5vdCBwcm9iaW5nIEdQSU9zIGlmDQo+IHRo ZXkncmUgYmFkbHkgc2V0dXA/DQoNCklmIHRoZSBkcml2ZXIgZmFpbHMgdG8gaW5pdGlhbGl6ZSB0 aGUgR1BJT3MsIGl0IHdpbGwgYXQgbGVhc3QgcHJpbnQgc29tZQ0KIkZhaWxlZCB0byBnZXQgR1BJ TyIgd2FybmluZ3MgaW4gZG1lc2cuIERvIHlvdSBoYXZlIHN1Y2ggbWVzc2FnZXMgaW4NCmRtZXNn IG9yIGFueSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9uIHdoeSBwcm9iZSBmYWlscz8NCg0KVGhl IGN1cnJlbnQgY29kZSB3aWxsIGlnbm9yZSBHUElPcyBpZiB0aGV5IGFyZSBub3QgZGVmaW5lZCBp biBBQ1BJDQooc2VlIHRoZSBjaGVjayBmb3IgLUVOT0VOVCksIGJ1dCBkb2VzIG5vdCBpZ25vcmUg b3RoZXIgZXJyb3IgY29kZXMuDQpJZiB5b3Ugd2FudCB0byBieXBhc3MgYWxsIEdQSU8gZXJyb3Jz LCB5b3UgY2FuIHVzZSB0aGUgY29kZSBiZWxvdy4NCg0KVGhhbmtzLA0KSXJpbmENCg0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vZ29vZGl4LmMgYi9kcml2ZXJzL2lucHV0 L3RvdWNoc2NyZWVuL2dvb2RpeC5jDQppbmRleCA5YzU4NTgzLi5mN2VjMGJhIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9nb29kaXguYw0KKysrIGIvZHJpdmVycy9pbnB1 dC90b3VjaHNjcmVlbi9nb29kaXguYw0KQEAgLTUyOCw5ICs1MjgsNyBAQCBzdGF0aWMgaW50IGdv b2RpeF90c19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LA0KICAgICAgICB0cy0+Y2xp ZW50ID0gY2xpZW50Ow0KICAgICAgICBpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCB0cyk7DQog DQotICAgICAgIGVycm9yID0gZ29vZGl4X2dldF9ncGlvX2NvbmZpZyh0cywgaWQpOw0KLSAgICAg ICBpZiAoZXJyb3IpDQotICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yOw0KKyAgICAgICBnb29k aXhfZ2V0X2dwaW9fY29uZmlnKHRzLCBpZCk7DQogDQogICAgICAgIGlmICh0cy0+Z3Bpb2RfaW50 ICYmIHRzLT5ncGlvZF9yc3QpIHsNCiAgICAgICAgICAgICAgICAvKiByZXNldCB0aGUgY29udHJv bGxlciAqLw0KDQoNClsxXSBodHRwOi8vbHhyLmZyZWUtZWxlY3Ryb25zLmNvbS9zb3VyY2UvZHJp dmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtYmF5dHJhaWwuYyNMMzM3DQoNCg== -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Bastien Nocera <hadess@hadess.net> |
|---|---|
| Date | 2015-09-29 04:10 +0200 |
| Message-ID | <qdSwG-Wh-3@gated-at.bofh.it> |
| In reply to | #1233068 |
On Fri, 2015-09-25 at 21:04 +0000, Tirdea, Irina wrote: > > > -----Original Message----- > > From: Bastien Nocera [mailto:hadess@hadess.net] > > Sent: 25 September, 2015 17:44 > > To: Tirdea, Irina; linux-input@vger.kernel.org > > Cc: linux-kernel@vger.kernel.org; Rob Herring; Pawel Moll; Ian > > Campbell; Kumar Gala; Purdila, Octavian; Dmitry Torokhov; Mark > > Rutland; devicetree@vger.kernel.org > > Subject: Re: [PATCH v3 1/5] Input: goodix - reset device at init > > > > On Thu, 2015-09-10 at 14:04 +0000, Tirdea, Irina wrote: > > > > > > > -----Original Message----- > > > > From: Bastien Nocera [mailto:hadess@hadess.net] > > > > Sent: 09 September, 2015 20:03 > > > > To: Tirdea, Irina; linux-input@vger.kernel.org > > > > Cc: linux-kernel@vger.kernel.org; Rob Herring; Pawel Moll; Ian > > > > Campbell; Kumar Gala; Purdila, Octavian; Dmitry Torokhov; Mark > > > > Rutland; devicetree@vger.kernel.org > > > > Subject: Re: [PATCH v3 1/5] Input: goodix - reset device at > > > > init > > > > > > > > On Thu, 2015-07-30 at 11:27 +0000, Tirdea, Irina wrote: > > > > > I can send some additional patches that will simplify testing > > > > > the > > > > > configuration update to the Goodix device. I think this > > > > > feature > > > > > is > > > > > the easiest > > > > > to test so we can determine if writing to the interrupt pin > > > > > actually > > > > > works. > > > > > However, even if it is a BIOS problem and the code will work, > > > > > the > > > > > warning > > > > > will still be printed in dmesg. > > > > > > > > > > > > Somehow missed this mail before replying to the current > > > > patchset. > > > > I'd > > > > be fine with that, though it's still not clear to me whether > > > > the > > > > BIOS/hardware is at fault, or the code that's being added to > > > > the > > > > driver > > > > ;) > > > > > > > > > > The reset procedure is described in the Goodix GT911 datasheet > > > [1] > > > and is > > > used for power-on reset and power management. The power-on > > > sequence > > > is described in chapter 6.1. I2C Timing, in the Power-on Timing > > > diagram. > > > The sequence for putting the device to sleep is described in > > > chapter > > > 7.1. Operating Modes, c) Sleep mode. These sequences use the > > > interrupt > > > pin as output. > > > > > > The warning you mentioned comes from the following code in the > > > goodix > > > driver, which sets the interrupt to be used as output: > > > > > > + error = gpiod_direction_output(ts->gpiod_int, ts->client- > > > > addr == 0x14); > > > > > > The gpiod_direction_output() call ends up in > > > drivers/pinctrl/intel/pinctrl-baytrail.c: > > > /* > > > * Before making any direction modifications, do a check if gpio > > > * is set for direct IRQ. On baytrail, setting GPIO to output > > > does > > > * not make sense, so let's at least warn the caller before they > > > shoot > > > * themselves in the foot. > > > */ > > > WARN(readl(conf_reg) & BYT_DIRECT_IRQ_EN, > > > "Potential Error: Setting GPIO with direct_irq_en to output"); > > > > > > So the problem comes from using the gpio interrupt pin as output, > > > which > > > should not work on Baytrail if BYT_DIRECT_IRQ_EN is set by BIOS. > > > The above warning is introduced and discussed in [2] and [3]. As > > > I > > > mentioned, > > > this could be a real HW issue or the BIOS sets BYT_DIRECT_IRQ_EN > > > when > > > it should not. I have also tested these patches on a Baytrail > > > plarform > > > (that uses the same pinctrl driver), but I did not see any issues > > > since > > > BYT_DIRECT_IRQ_EN is not set in my case for the interrupt gpio > > > pin. > > > > Do we have a way to work-around this in the GPIO driver? > > > > > To determine if using the interrupt pin as output works, you can > > > test > > > updating > > > the goodix configuration [4]. > > > > Right, the problem being that it's a later patch in the branch, and > > that the driver will fail to probe if there's an error from the > > GPIO > > call. > > > > The warning from your dmesg output will not cause probe to fail. > If you look at the code for byt_gpio_direction_output, it will just > print > a warning and continue [1]: > WARN(readl(conf_reg) & BYT_DIRECT_IRQ_EN, > "Potential Error: Setting GPIO with direct_irq_en to > output"); > I thought probe finishes successfully, but due to the warning in > dmesg you > are not sure whether the IRQ GPIO pin can be used as output. > If probe fails, it must be for another reason than the direct_irq_en > warning. > > > Would you have a patch for me to test that would bypass this error, > > or > > at least fallback gracefully to not resetting, not probing GPIOs if > > they're badly setup? > > If the driver fails to initialize the GPIOs, it will at least print > some > "Failed to get GPIO" warnings in dmesg. Do you have such messages in > dmesg or any additional information on why probe fails? > > The current code will ignore GPIOs if they are not defined in ACPI > (see the check for -ENOENT), but does not ignore other error codes. > If you want to bypass all GPIO errors, you can use the code below. The failure isn't there, it's when running goodix_i2c_test(): Sep 25 16:39:20 winbook kernel: Goodix-TS i2c-GDIX1001:00: i2c test failed attempt 1: -121 Sep 25 16:39:20 winbook kernel: Goodix-TS i2c-GDIX1001:00: i2c test failed attempt 2: -121 Sep 25 16:39:20 winbook kernel: Goodix-TS i2c-GDIX1001:00: I2C communication failure: -121 Sep 25 16:39:20 winbook kernel: Goodix-TS: probe of i2c-GDIX1001:00 failed with error -121 The GPIO setup seems to work (bar the warnings), and the reset as well, but then the device fails to communicate. Likely a fallout from the reset actually failing. Swapping around the RST and INT pins leads to the same problem. Either this device's GPIO PINs aren't actually functional, and the firmware contains garbage, or something else is wrong. I'm not sure how we can detect, and blacklist, those devices. At least my original device, the Onda v975w, and the WinBook TW100 would have those problems. Cheers -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | "Tirdea, Irina" <irina.tirdea@intel.com> |
|---|---|
| Date | 2015-09-29 19:50 +0200 |
| Message-ID | <qe7cm-50W-9@gated-at.bofh.it> |
| In reply to | #1234640 |
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQmFzdGllbiBOb2NlcmEg W21haWx0bzpoYWRlc3NAaGFkZXNzLm5ldF0NCj4gU2VudDogMjkgU2VwdGVtYmVyLCAyMDE1IDU6 MDQNCj4gVG86IFRpcmRlYSwgSXJpbmE7IGxpbnV4LWlucHV0QHZnZXIua2VybmVsLm9yZw0KPiBD YzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgUm9iIEhlcnJpbmc7IFBhd2VsIE1vbGw7 IElhbiBDYW1wYmVsbDsgS3VtYXIgR2FsYTsgUHVyZGlsYSwgT2N0YXZpYW47IERtaXRyeSBUb3Jv a2hvdjsgTWFyaw0KPiBSdXRsYW5kOyBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZw0KPiBTdWJq ZWN0OiBSZTogW1BBVENIIHYzIDEvNV0gSW5wdXQ6IGdvb2RpeCAtIHJlc2V0IGRldmljZSBhdCBp bml0DQo+IA0KPiBPbiBGcmksIDIwMTUtMDktMjUgYXQgMjE6MDQgKzAwMDAsIFRpcmRlYSwgSXJp bmEgd3JvdGU6DQo+ID4NCjxzbmlwPg0KPiA+DQo+ID4gVGhlIHdhcm5pbmcgZnJvbSB5b3VyIGRt ZXNnIG91dHB1dCB3aWxsIG5vdCBjYXVzZSBwcm9iZSB0byBmYWlsLg0KPiA+IElmIHlvdSBsb29r IGF0IHRoZSBjb2RlIGZvciBieXRfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0LCBpdCB3aWxsIGp1c3QN Cj4gPiBwcmludA0KPiA+IGEgd2FybmluZyBhbmQgY29udGludWUgWzFdOg0KPiA+IAlXQVJOKHJl YWRsKGNvbmZfcmVnKSAmIEJZVF9ESVJFQ1RfSVJRX0VOLA0KPiA+IAkJIlBvdGVudGlhbCBFcnJv cjogU2V0dGluZyBHUElPIHdpdGggZGlyZWN0X2lycV9lbiB0bw0KPiA+IG91dHB1dCIpOw0KPiA+ IEkgdGhvdWdodCBwcm9iZSBmaW5pc2hlcyBzdWNjZXNzZnVsbHksIGJ1dCBkdWUgdG8gdGhlIHdh cm5pbmcgaW4NCj4gPiBkbWVzZyB5b3UNCj4gPiBhcmUgbm90IHN1cmUgd2hldGhlciB0aGUgSVJR IEdQSU8gcGluIGNhbiBiZSB1c2VkIGFzIG91dHB1dC4NCj4gPiBJZiBwcm9iZSBmYWlscywgaXQg bXVzdCBiZSBmb3IgYW5vdGhlciByZWFzb24gdGhhbiB0aGUgZGlyZWN0X2lycV9lbg0KPiA+IHdh cm5pbmcuDQo+ID4NCj4gPiA+IFdvdWxkIHlvdSBoYXZlIGEgcGF0Y2ggZm9yIG1lIHRvIHRlc3Qg dGhhdCB3b3VsZCBieXBhc3MgdGhpcyBlcnJvciwNCj4gPiA+IG9yDQo+ID4gPiBhdCBsZWFzdCBm YWxsYmFjayBncmFjZWZ1bGx5IHRvIG5vdCByZXNldHRpbmcsIG5vdCBwcm9iaW5nIEdQSU9zIGlm DQo+ID4gPiB0aGV5J3JlIGJhZGx5IHNldHVwPw0KPiA+DQo+ID4gSWYgdGhlIGRyaXZlciBmYWls cyB0byBpbml0aWFsaXplIHRoZSBHUElPcywgaXQgd2lsbCBhdCBsZWFzdCBwcmludA0KPiA+IHNv bWUNCj4gPiAiRmFpbGVkIHRvIGdldCBHUElPIiB3YXJuaW5ncyBpbiBkbWVzZy4gRG8geW91IGhh dmUgc3VjaCBtZXNzYWdlcyBpbg0KPiA+IGRtZXNnIG9yIGFueSBhZGRpdGlvbmFsIGluZm9ybWF0 aW9uIG9uIHdoeSBwcm9iZSBmYWlscz8NCj4gPg0KPiA+IFRoZSBjdXJyZW50IGNvZGUgd2lsbCBp Z25vcmUgR1BJT3MgaWYgdGhleSBhcmUgbm90IGRlZmluZWQgaW4gQUNQSQ0KPiA+IChzZWUgdGhl IGNoZWNrIGZvciAtRU5PRU5UKSwgYnV0IGRvZXMgbm90IGlnbm9yZSBvdGhlciBlcnJvciBjb2Rl cy4NCj4gPiBJZiB5b3Ugd2FudCB0byBieXBhc3MgYWxsIEdQSU8gZXJyb3JzLCB5b3UgY2FuIHVz ZSB0aGUgY29kZSBiZWxvdy4NCj4gDQo+IFRoZSBmYWlsdXJlIGlzbid0IHRoZXJlLCBpdCdzIHdo ZW4gcnVubmluZ8KgZ29vZGl4X2kyY190ZXN0KCk6DQo+IFNlcCAyNSAxNjozOToyMCB3aW5ib29r IGtlcm5lbDogR29vZGl4LVRTIGkyYy1HRElYMTAwMTowMDogaTJjIHRlc3QgZmFpbGVkIGF0dGVt cHQgMTogLTEyMQ0KPiBTZXAgMjUgMTY6Mzk6MjAgd2luYm9vayBrZXJuZWw6IEdvb2RpeC1UUyBp MmMtR0RJWDEwMDE6MDA6IGkyYyB0ZXN0IGZhaWxlZCBhdHRlbXB0IDI6IC0xMjENCj4gU2VwIDI1 IDE2OjM5OjIwIHdpbmJvb2sga2VybmVsOiBHb29kaXgtVFMgaTJjLUdESVgxMDAxOjAwOiBJMkMg Y29tbXVuaWNhdGlvbiBmYWlsdXJlOiAtMTIxDQo+IFNlcCAyNSAxNjozOToyMCB3aW5ib29rIGtl cm5lbDogR29vZGl4LVRTOiBwcm9iZSBvZiBpMmMtR0RJWDEwMDE6MDAgZmFpbGVkIHdpdGggZXJy b3IgLTEyMQ0KPiANCg0KQXJlIHlvdSB1c2luZyB2NiBvZiB0aGUgcGF0Y2hlcz8gVGhlcmUgd2Fz IGFuIGlzc3VlIHdpdGggcmVzZXQgdGhhdCBBbGVrc2VpIHJlcG9ydGVkDQphbmQgd2FzIGZpeGVk IGluIHY2IChhbHRob3VnaCBoZSBoYWQgYSBkaWZmZXJlbnQgaTJjIGVycm9yIGFuZCBhIGRpZmZl cmVudCBzY2VuYXJpbykuDQoNCj4gVGhlIEdQSU8gc2V0dXAgc2VlbXMgdG8gd29yayAoYmFyIHRo ZSB3YXJuaW5ncyksIGFuZCB0aGUgcmVzZXQgYXMgd2VsbCwNCj4gYnV0IHRoZW4gdGhlIGRldmlj ZSBmYWlscyB0byBjb21tdW5pY2F0ZS4gTGlrZWx5IGEgZmFsbG91dCBmcm9tIHRoZQ0KPiByZXNl dCBhY3R1YWxseSBmYWlsaW5nLg0KPiANCj4gU3dhcHBpbmcgYXJvdW5kIHRoZSBSU1QgYW5kIElO VCBwaW5zIGxlYWRzIHRvIHRoZSBzYW1lIHByb2JsZW0uIEVpdGhlcg0KPiB0aGlzIGRldmljZSdz IEdQSU8gUElOcyBhcmVuJ3QgYWN0dWFsbHkgZnVuY3Rpb25hbCwgYW5kIHRoZSBmaXJtd2FyZQ0K PiBjb250YWlucyBnYXJiYWdlLCBvciBzb21ldGhpbmcgZWxzZSBpcyB3cm9uZy4NCj4gDQoNCkkg YWdyZWUuIEVpdGhlciB0aGUgaW50ZXJydXB0IHBpbiBjYW5ub3QgYmUgdXNlZCBhcyBvdXRwdXQg aW4geW91ciBjb25maWd1cmF0aW9uDQpvciB0aGVyZSBhcmUgc29tZSBzcGVjaWZpY3MgaW4gdGhl IEFDUEkgdGFibGVzIHRoYXQgcHJldmVudCB1c2luZyB0aGVzZSBwaW5zLiANCg0KPiBJJ20gbm90 IHN1cmUgaG93IHdlIGNhbiBkZXRlY3QsIGFuZCBibGFja2xpc3QsIHRob3NlIGRldmljZXMuIEF0 IGxlYXN0DQo+IG15IG9yaWdpbmFsIGRldmljZSwgdGhlIE9uZGEgdjk3NXcsIGFuZCB0aGUgV2lu Qm9vayBUVzEwMCB3b3VsZCBoYXZlDQo+IHRob3NlIHByb2JsZW1zLg0KPiANCg0KSSBjYW4gdXNl IERNSSBxdWlya3MgdG8gZXhjbHVkZSB0aGVzZSBkZXZpY2VzIGZyb20gdXNpbmcgdGhlIGZlYXR1 cmVzIHRoYXQNCmRlcGVuZCBvbiB0aGUgZ3BpbyBwaW5zLiBJIGFscmVhZHkgaGF2ZSB0aGUgRE1J IGluZm9ybWF0aW9uIGZvciBXaW5Cb29rIFRXMTAwDQphbmQgV2luQm9vayBUVzcwMC4gQ291bGQg eW91IHRlbGwgbWUgdGhlIERNSV9TWVNfVkVORE9SIGFuZA0KRE1JX1BST0RVQ1RfTkFNRSBmb3Ig T25kYSB2OTc1dyBzbyBJIGNhbiBhZGQgaXQgYXMgd2VsbD8NCg0KVGhhbmtzLA0KSXJpbmENCg0K PiBDaGVlcnMNCg== -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Bastien Nocera <hadess@hadess.net> |
|---|---|
| Date | 2015-09-30 13:20 +0200 |
| Message-ID | <qenAu-3ml-11@gated-at.bofh.it> |
| In reply to | #1235436 |
On Tue, 2015-09-29 at 17:47 +0000, Tirdea, Irina wrote: > > > -----Original Message----- > > From: Bastien Nocera [mailto:hadess@hadess.net] > > Sent: 29 September, 2015 5:04 > > To: Tirdea, Irina; linux-input@vger.kernel.org > > Cc: linux-kernel@vger.kernel.org; Rob Herring; Pawel Moll; Ian > > Campbell; Kumar Gala; Purdila, Octavian; Dmitry Torokhov; Mark > > Rutland; devicetree@vger.kernel.org > > Subject: Re: [PATCH v3 1/5] Input: goodix - reset device at init > > > > On Fri, 2015-09-25 at 21:04 +0000, Tirdea, Irina wrote: > > > > <snip> > > > > > > The warning from your dmesg output will not cause probe to fail. > > > If you look at the code for byt_gpio_direction_output, it will > > > just > > > print > > > a warning and continue [1]: > > > WARN(readl(conf_reg) & BYT_DIRECT_IRQ_EN, > > > "Potential Error: Setting GPIO with direct_irq_en to > > > output"); > > > I thought probe finishes successfully, but due to the warning in > > > dmesg you > > > are not sure whether the IRQ GPIO pin can be used as output. > > > If probe fails, it must be for another reason than the > > > direct_irq_en > > > warning. > > > > > > > Would you have a patch for me to test that would bypass this > > > > error, > > > > or > > > > at least fallback gracefully to not resetting, not probing > > > > GPIOs if > > > > they're badly setup? > > > > > > If the driver fails to initialize the GPIOs, it will at least > > > print > > > some > > > "Failed to get GPIO" warnings in dmesg. Do you have such messages > > > in > > > dmesg or any additional information on why probe fails? > > > > > > The current code will ignore GPIOs if they are not defined in > > > ACPI > > > (see the check for -ENOENT), but does not ignore other error > > > codes. > > > If you want to bypass all GPIO errors, you can use the code > > > below. > > > > The failure isn't there, it's when running goodix_i2c_test(): > > Sep 25 16:39:20 winbook kernel: Goodix-TS i2c-GDIX1001:00: i2c test > > failed attempt 1: -121 > > Sep 25 16:39:20 winbook kernel: Goodix-TS i2c-GDIX1001:00: i2c test > > failed attempt 2: -121 > > Sep 25 16:39:20 winbook kernel: Goodix-TS i2c-GDIX1001:00: I2C > > communication failure: -121 > > Sep 25 16:39:20 winbook kernel: Goodix-TS: probe of i2c-GDIX1001:00 > > failed with error -121 > > > > Are you using v6 of the patches? There was an issue with reset that > Aleksei reported > and was fixed in v6 (although he had a different i2c error and a > different scenario). Pretty certain. Your current patchset is at: https://github.com/hadess/gt9xx/tree/irina-tirdea And the patches are yours, with the prefix and Documentation removed. > > The GPIO setup seems to work (bar the warnings), and the reset as > > well, > > but then the device fails to communicate. Likely a fallout from the > > reset actually failing. > > > > Swapping around the RST and INT pins leads to the same problem. > > Either > > this device's GPIO PINs aren't actually functional, and the > > firmware > > contains garbage, or something else is wrong. > > > > I agree. Either the interrupt pin cannot be used as output in your > configuration > or there are some specifics in the ACPI tables that prevent using > these pins. > > > I'm not sure how we can detect, and blacklist, those devices. At > > least > > my original device, the Onda v975w, and the WinBook TW100 would > > have > > those problems. > > > > I can use DMI quirks to exclude these devices from using the features > that > depend on the gpio pins. I already have the DMI information for > WinBook TW100 > and WinBook TW700. Could you tell me the DMI_SYS_VENDOR and > DMI_PRODUCT_NAME for Onda v975w so I can add it as well? I don't have access to the Onda v975w anymore, but let me CC: a few people that could also help with testing. Carlos, Cosimo, Christian, there's a patchset for you to test on the Onda v975w at: https://github.com/hadess/gt9xx/commits/irina-tirdea Doing an "rmmod goodix ; insmod ./goodix_backport.ko" should be enough to test whether the patch set works. If it doesn't work correctly, you'll need to reboot the machine, swap the irq_idx and rst_idx values at: https://github.com/hadess/gt9xx/commit/c27de79f494c2b2e7a198ff4d27976ae93669dbd#diff-dddc2849e36327439530f3e2faacec4fR321 and try again. If all that fails, could you please send the output of "dmidecode" to Irina? Cheers -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | "Tirdea, Irina" <irina.tirdea@intel.com> |
|---|---|
| Date | 2015-10-01 16:50 +0200 |
| Message-ID | <qeNlh-7wZ-31@gated-at.bofh.it> |
| In reply to | #1236173 |
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogbXJnYXJuYWNob0BnbWFp bC5jb20gW21haWx0bzptcmdhcm5hY2hvQGdtYWlsLmNvbV0gT24gQmVoYWxmIE9mIENhcmxvcyBH YXJuYWNobw0KPiBTZW50OiAzMCBTZXB0ZW1iZXIsIDIwMTUgMTc6MDINCj4gVG86IEJhc3RpZW4g Tm9jZXJhDQo+IENjOiBUaXJkZWEsIElyaW5hOyBsaW51eC1pbnB1dEB2Z2VyLmtlcm5lbC5vcmc7 IENvc2ltbyBDZWNjaGk7IENocmlzdGlhbiBIZXJnZXJ0OyBsaW51eC1rZXJuZWxAdmdlci5rZXJu ZWwub3JnOyBSb2IgSGVycmluZzsgUGF3ZWwNCj4gTW9sbDsgSWFuIENhbXBiZWxsOyBLdW1hciBH YWxhOyBQdXJkaWxhLCBPY3RhdmlhbjsgRG1pdHJ5IFRvcm9raG92OyBNYXJrIFJ1dGxhbmQ7IGRl dmljZXRyZWVAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgMS81XSBJ bnB1dDogZ29vZGl4IC0gcmVzZXQgZGV2aWNlIGF0IGluaXQNCj4gDQo+IEhleSwNCj4gDQoNCkhp IENhcmxvcyBhbmQgQmFzdGllbiwNCg0KVGhhbmtzIGZvciB5b3VyIGhlbHAgYW5kIGZvciB0ZXN0 aW5nIHRoZXNlIHBhdGNoZXMhDQoNCjxzbmlwPg0KDQo+ID4+ID4gSSdtIG5vdCBzdXJlIGhvdyB3 ZSBjYW4gZGV0ZWN0LCBhbmQgYmxhY2tsaXN0LCB0aG9zZSBkZXZpY2VzLiBBdA0KPiA+PiA+IGxl YXN0DQo+ID4+ID4gbXkgb3JpZ2luYWwgZGV2aWNlLCB0aGUgT25kYSB2OTc1dywgYW5kIHRoZSBX aW5Cb29rIFRXMTAwIHdvdWxkDQo+ID4+ID4gaGF2ZQ0KPiA+PiA+IHRob3NlIHByb2JsZW1zLg0K PiA+PiA+DQo+ID4+DQo+ID4+IEkgY2FuIHVzZSBETUkgcXVpcmtzIHRvIGV4Y2x1ZGUgdGhlc2Ug ZGV2aWNlcyBmcm9tIHVzaW5nIHRoZSBmZWF0dXJlcw0KPiA+PiB0aGF0DQo+ID4+IGRlcGVuZCBv biB0aGUgZ3BpbyBwaW5zLiBJIGFscmVhZHkgaGF2ZSB0aGUgRE1JIGluZm9ybWF0aW9uIGZvcg0K PiA+PiBXaW5Cb29rIFRXMTAwDQo+ID4+IGFuZCBXaW5Cb29rIFRXNzAwLiBDb3VsZCB5b3UgdGVs bCBtZSB0aGUgRE1JX1NZU19WRU5ET1IgYW5kDQo+ID4+IERNSV9QUk9EVUNUX05BTUUgZm9yIE9u ZGEgdjk3NXcgc28gSSBjYW4gYWRkIGl0IGFzIHdlbGw/DQo+ID4NCj4gPiBJIGRvbid0IGhhdmUg YWNjZXNzIHRvIHRoZSBPbmRhIHY5NzV3IGFueW1vcmUsIGJ1dCBsZXQgbWUgQ0M6IGEgZmV3DQo+ ID4gcGVvcGxlIHRoYXQgY291bGQgYWxzbyBoZWxwIHdpdGggdGVzdGluZy4NCj4gPg0KPiA+IENh cmxvcywgQ29zaW1vLCBDaHJpc3RpYW4sIHRoZXJlJ3MgYSBwYXRjaHNldCBmb3IgeW91IHRvIHRl c3Qgb24gdGhlDQo+ID4gT25kYSB2OTc1dyBhdDoNCj4gPiBodHRwczovL2dpdGh1Yi5jb20vaGFk ZXNzL2d0OXh4L2NvbW1pdHMvaXJpbmEtdGlyZGVhDQo+ID4NCj4gPiBEb2luZyBhbiAicm1tb2Qg Z29vZGl4IDsgaW5zbW9kIC4vZ29vZGl4X2JhY2twb3J0LmtvIiBzaG91bGQgYmUgZW5vdWdoDQo+ ID4gdG8gdGVzdCB3aGV0aGVyIHRoZSBwYXRjaCBzZXQgd29ya3MuIElmIGl0IGRvZXNuJ3Qgd29y ayBjb3JyZWN0bHksDQo+ID4geW91J2xsIG5lZWQgdG8gcmVib290IHRoZSBtYWNoaW5lLCBzd2Fw IHRoZSBpcnFfaWR4IGFuZCByc3RfaWR4IHZhbHVlcw0KPiA+IGF0Og0KPiA+IGh0dHBzOi8vZ2l0 aHViLmNvbS9oYWRlc3MvZ3Q5eHgvY29tbWl0L2MyN2RlNzlmNDk0YzJiMmU3YTE5OGZmNGQyNzk3 NmFlOTM2NjlkYmQjZGlmZi0NCj4gZGRkYzI4NDllMzYzMjc0Mzk1MzBmM2UyZmFhY2VjNGZSMzIx DQo+ID4NCj4gPiBhbmQgdHJ5IGFnYWluLg0KPiANCj4gVW5zd2FwcGVkIGRvZXMgZmFpbCB3aXRo Og0KPiANCj4gc2VwIDMwIDE1OjM3OjI5IHRhYmxldCBrZXJuZWw6IEdvb2RpeC1UUyBpMmMtR0RJ WDEwMDE6MDA6IGkyYyB0ZXN0DQo+IGZhaWxlZCBhdHRlbXB0IDE6IC0xMjENCj4gc2VwIDMwIDE1 OjM3OjI5IHRhYmxldCBrZXJuZWw6IEdvb2RpeC1UUyBpMmMtR0RJWDEwMDE6MDA6IGkyYyB0ZXN0 DQo+IGZhaWxlZCBhdHRlbXB0IDI6IC0xMjENCj4gc2VwIDMwIDE1OjM3OjI5IHRhYmxldCBrZXJu ZWw6IEdvb2RpeC1UUyBpMmMtR0RJWDEwMDE6MDA6IEkyQw0KPiBjb21tdW5pY2F0aW9uIGZhaWx1 cmU6IC0xMjENCj4gc2VwIDMwIDE1OjM3OjI5IHRhYmxldCBrZXJuZWw6IEdvb2RpeC1UUzogcHJv YmUgb2YgaTJjLUdESVgxMDAxOjAwDQo+IGZhaWxlZCB3aXRoIGVycm9yIC0xMjENCj4gDQo+IFN3 YXBwaW5nIHRoZSB2YWx1ZXMgdHJpZ2dlcnMgc29tZSBlcnJvcnM6DQo+IA0KPiBzZXAgMzAgMTU6 NDg6MTcgdGFibGV0IGtlcm5lbDogLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0t DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBXQVJOSU5HOiBDUFU6IDEgUElEOiAy MzQxIGF0DQo+IGRyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWJheXRyYWlsLmM6MzQyDQo+ IGJ5dF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQrMHhhMS8weGIwKCkNCj4gc2VwIDMwIDE1OjQ4OjE3 IHRhYmxldCBrZXJuZWw6IFBvdGVudGlhbCBFcnJvcjogU2V0dGluZyBHUElPIHdpdGgNCj4gZGly ZWN0X2lycV9lbiB0byBvdXRwdXQNCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6IE1v ZHVsZXMgbGlua2VkIGluOg0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIGdvb2Rp eF9iYWNrcG9ydChPRSspIHI4NzIzYnMoT0UpIG5mc2QNCj4gbG9ja2QgZ3JhY2Ugc3VucnBjIFts YXN0IHVubG9hZGVkOiBnb29kaXhdDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBD UFU6IDEgUElEOiAyMzQxIENvbW06IGluc21vZCBUYWludGVkOg0KPiBHICAgICAgICAgICBPRSAg IDQuMy4wLXJjMSsgIzM2DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBIYXJkd2Fy ZSBuYW1lOiBUbyBiZSBmaWxsZWQgYnkgTy5FLk0uDQo+IFRvIGJlIGZpbGxlZCBieSBPLkUuTS4v QXB0aW8gQ1JCLCBCSU9TIDUuNi41IDA3LzI1LzIwMTQNCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxl dCBrZXJuZWw6ICAwMDAwMDAwMCAwMDAwMDAwMCBkM2Y2MWMwOCBjMTNiMzQ3Zg0KPiBkM2Y2MWM0 OCBkM2Y2MWMzOCBjMTBhOWUxZCBjMjBmMTBlMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtl cm5lbDogIGQzZjYxYzY0IDAwMDAwOTI1IGMyMGYxMTFjIDAwMDAwMTU2DQo+IGMxM2U3Y2UxIGMx M2U3Y2UxIGY4MDU4MGI4IGY1M2E0YjBjDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVs OiAgMDAwMDAxNTYgZDNmNjFjNTAgYzEwYTllOTMgMDAwMDAwMDkNCj4gZDNmNjFjNDggYzIwZjEw ZTAgZDNmNjFjNjQgZDNmNjFjNzgNCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6IENh bGwgVHJhY2U6DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNiMzQ3Zj5d IGR1bXBfc3RhY2srMHg0OC8weDY5DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAg WzxjMTBhOWUxZD5dIHdhcm5fc2xvd3BhdGhfY29tbW9uKzB4OGQvMHhkMA0KPiBzZXAgMzAgMTU6 NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzZTdjZTE+XSA/DQo+IGJ5dF9ncGlvX2RpcmVjdGlv bl9vdXRwdXQrMHhhMS8weGIwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxj MTNlN2NlMT5dID8NCj4gYnl0X2dwaW9fZGlyZWN0aW9uX291dHB1dCsweGExLzB4YjANCj4gc2Vw IDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMGE5ZTkzPl0gd2Fybl9zbG93cGF0aF9m bXQrMHgzMy8weDQwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlN2Nl MT5dIGJ5dF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQrMHhhMS8weGIwDQo+IHNlcCAzMCAxNTo0ODox NyB0YWJsZXQga2VybmVsOiAgWzxjMTNlN2M0MD5dID8gYnl0X2dwaW9faXJxX2hhbmRsZXIrMHhi MC8weGIwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlYWJjMz5dDQo+ IF9ncGlvZF9kaXJlY3Rpb25fb3V0cHV0X3JhdysweDYzLzB4MzUwDQo+IHNlcCAzMCAxNTo0ODox NyB0YWJsZXQga2VybmVsOiAgWzxjMTNlYWYxYT5dIGdwaW9kX2RpcmVjdGlvbl9vdXRwdXQrMHgy YS8weDUwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTEyYjg0Nj5dID8g bXNsZWVwKzB4MzYvMHg0MA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8Zjlm ZjM4YWU+XSBnb29kaXhfcmVzZXQrMHgzZS8weDkwDQo+IFtnb29kaXhfYmFja3BvcnRdDQo+IHNl cCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxmOWZmNDBmYT5dDQo+IGdvb2RpeF90c19w cm9iZSsweDEyYS8weDVhYSBbZ29vZGl4X2JhY2twb3J0XQ0KPiBzZXAgMzAgMTU6NDg6MTcgdGFi bGV0IGtlcm5lbDogIFs8YzE0MmE1YTQ+XSA/IGFjcGlfZGV2aWNlX3dha2V1cCsweDdhLzB4ODAN Cj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNDJhZDg0Pl0gPyBhY3BpX2Rl dl9wbV9hdHRhY2grMHg3MS8weDg3DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAg WzxjMTkyNDI3MT5dIGkyY19kZXZpY2VfcHJvYmUrMHgxMjEvMHgxZDANCj4gc2VwIDMwIDE1OjQ4 OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxYzc3ZGEyPl0gPyBfcmF3X3NwaW5fdW5sb2NrKzB4MjIv MHgzMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8ZjlmZjNmZDA+XSA/DQo+ IGdvb2RpeF9jb25maWdfY2IrMHhjMC8weGMwIFtnb29kaXhfYmFja3BvcnRdDQo+IHNlcCAzMCAx NTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTViMjEyNT5dID8gZHJpdmVyX3N5c2ZzX2FkZCsw eDc1LzB4YTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWIyYjI0Pl0g ZHJpdmVyX3Byb2JlX2RldmljZSsweDIwNC8weDRjMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0 IGtlcm5lbDogIFs8YzE1YjJlM2M+XSA/IF9fZHJpdmVyX2F0dGFjaCsweDVjLzB4YTANCj4gc2Vw IDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWIyZTNjPl0gPyBfX2RyaXZlcl9hdHRh Y2grMHg1Yy8weGEwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTViMmU3 OT5dIF9fZHJpdmVyX2F0dGFjaCsweDk5LzB4YTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBr ZXJuZWw6ICBbPGMxNWIyZGUwPl0gPyBkcml2ZXJfcHJvYmVfZGV2aWNlKzB4NGMwLzB4NGMwDQo+ IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTViMDkyZj5dIGJ1c19mb3JfZWFj aF9kZXYrMHg0Zi8weDgwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTVi MjJkZT5dIGRyaXZlcl9hdHRhY2grMHgxZS8weDIwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQg a2VybmVsOiAgWzxjMTViMmRlMD5dID8gZHJpdmVyX3Byb2JlX2RldmljZSsweDRjMC8weDRjMA0K PiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YjFlNzc+XSBidXNfYWRkX2Ry aXZlcisweDFmNy8weDJhMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8Zjlm ZjcwMDA+XSA/IDB4ZjlmZjcwMDANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBb PGY5ZmY3MDAwPl0gPyAweGY5ZmY3MDAwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVs OiAgWzxjMTViMzk4ZD5dIGRyaXZlcl9yZWdpc3RlcisweDVkLzB4ZjANCj4gc2VwIDMwIDE1OjQ4 OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxOTI0ZGFhPl0gaTJjX3JlZ2lzdGVyX2RyaXZlcisweDJh LzB4YTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMDAwNDVmPl0gPyBk b19vbmVfaW5pdGNhbGwrMHg5Zi8weDFmMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5l bDogIFs8ZjlmZjcwMTI+XQ0KPiBnb29kaXhfdHNfZHJpdmVyX2luaXQrMHgxMi8weDE0IFtnb29k aXhfYmFja3BvcnRdDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTAwMDQ2 YT5dIGRvX29uZV9pbml0Y2FsbCsweGFhLzB4MWYwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQg a2VybmVsOiAgWzxmOWZmNzAwMD5dID8gMHhmOWZmNzAwMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFi bGV0IGtlcm5lbDogIFs8YzEwZDI0ODY+XSA/IF9fbWlnaHRfc2xlZXArMHgzNi8weGEwDQo+IHNl cCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTEwM2ZkND5dID8NCj4gdHJhY2VfaGFy ZGlycXNfb25fY2FsbGVyKzB4MTQvMHgyMjANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJu ZWw6ICBbPGMxMWMxYzVjPl0gPyBmcmVlX3BhZ2VzX3ByZXBhcmUrMHgxOWMvMHgzODANCj4gc2Vw IDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMjBiY2U4Pl0gPyBrbWVtX2NhY2hlX2Fs bG9jX3RyYWNlKzB4YTgvMHgyYTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBb PGMxMWJhYzNmPl0gPyBkb19pbml0X21vZHVsZSsweDIxLzB4MWIwDQo+IHNlcCAzMCAxNTo0ODox NyB0YWJsZXQga2VybmVsOiAgWzxjMTFiYWM2ZT5dIGRvX2luaXRfbW9kdWxlKzB4NTAvMHgxYjAN Cj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMTRiNjliPl0gbG9hZF9tb2R1 bGUrMHgxM2RiLzB4MTk4MA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEx NGJlMjk+XSBTeVNfZmluaXRfbW9kdWxlKzB4ODkvMHhkMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFi bGV0IGtlcm5lbDogIFs8YzExZDk1MzI+XSA/IHZtX21tYXBfcGdvZmYrMHg2Mi8weDgwDQo+IHNl cCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMWM3ODdmMD5dIHN5c2VudGVyX2RvX2Nh bGwrMHgxMi8weDEyDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAtLS1bIGVuZCB0 cmFjZSBlMGY2NjMwNTY0OGIwNjM5IF0tLS0NCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJu ZWw6IC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQ0KPiBzZXAgMzAgMTU6NDg6 MTcgdGFibGV0IGtlcm5lbDogV0FSTklORzogQ1BVOiAxIFBJRDogMjM0MSBhdA0KPiBkcml2ZXJz L3BpbmN0cmwvaW50ZWwvcGluY3RybC1iYXl0cmFpbC5jOjM0Mg0KPiBieXRfZ3Bpb19kaXJlY3Rp b25fb3V0cHV0KzB4YTEvMHhiMCgpDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBQ b3RlbnRpYWwgRXJyb3I6IFNldHRpbmcgR1BJTyB3aXRoDQo+IGRpcmVjdF9pcnFfZW4gdG8gb3V0 cHV0DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBNb2R1bGVzIGxpbmtlZCBpbjoN Cj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBnb29kaXhfYmFja3BvcnQoT0UrKSBy ODcyM2JzKE9FKSBuZnNkDQo+IGxvY2tkIGdyYWNlIHN1bnJwYyBbbGFzdCB1bmxvYWRlZDogZ29v ZGl4XQ0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogQ1BVOiAxIFBJRDogMjM0MSBD b21tOiBpbnNtb2QgVGFpbnRlZDoNCj4gRyAgICAgICAgVyAgT0UgICA0LjMuMC1yYzErICMzNg0K PiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogSGFyZHdhcmUgbmFtZTogVG8gYmUgZmls bGVkIGJ5IE8uRS5NLg0KPiBUbyBiZSBmaWxsZWQgYnkgTy5FLk0uL0FwdGlvIENSQiwgQklPUyA1 LjYuNSAwNy8yNS8yMDE0DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgMDAwMDAw MDAgMDAwMDAwMDAgZDNmNjFiZmMgYzEzYjM0N2YNCj4gZDNmNjFjM2MgZDNmNjFjMmMgYzEwYTll MWQgYzIwZjEwZTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBkM2Y2MWM1OCAw MDAwMDkyNSBjMjBmMTExYyAwMDAwMDE1Ng0KPiBjMTNlN2NlMSBjMTNlN2NlMSBmODA1ODBiOCBm NTNhNGIwYw0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIDAwMDAwMTU2IGQzZjYx YzQ0IGMxMGE5ZTkzIDAwMDAwMDA5DQo+IGQzZjYxYzNjIGMyMGYxMGUwIGQzZjYxYzU4IGQzZjYx YzZjDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBDYWxsIFRyYWNlOg0KPiBzZXAg MzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzYjM0N2Y+XSBkdW1wX3N0YWNrKzB4NDgv MHg2OQ0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEwYTllMWQ+XSB3YXJu X3Nsb3dwYXRoX2NvbW1vbisweDhkLzB4ZDANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJu ZWw6ICBbPGMxM2U3Y2UxPl0gPw0KPiBieXRfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KzB4YTEvMHhi MA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzZTdjZTE+XSA/DQo+IGJ5 dF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQrMHhhMS8weGIwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJs ZXQga2VybmVsOiAgWzxjMTBhOWU5Mz5dIHdhcm5fc2xvd3BhdGhfZm10KzB4MzMvMHg0MA0KPiBz ZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzZTdjZTE+XSBieXRfZ3Bpb19kaXJl Y3Rpb25fb3V0cHV0KzB4YTEvMHhiMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDog IFs8YzEzZTdjNDA+XSA/IGJ5dF9ncGlvX2lycV9oYW5kbGVyKzB4YjAvMHhiMA0KPiBzZXAgMzAg MTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzZWFiYzM+XQ0KPiBfZ3Bpb2RfZGlyZWN0aW9u X291dHB1dF9yYXcrMHg2My8weDM1MA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDog IFs8YzEzZTc4NTM+XSA/DQo+IGJ5dF9ncGlvX2RpcmVjdGlvbl9pbnB1dCsweDQzLzB4NTANCj4g c2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxM2VhZjFhPl0gZ3Bpb2RfZGlyZWN0 aW9uX291dHB1dCsweDJhLzB4NTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBb PGY5ZmYzN2U0Pl0NCj4gZ29vZGl4X2ludF9zeW5jLmlzcmEuNCsweDE0LzB4MzAgW2dvb2RpeF9i YWNrcG9ydF0NCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGY5ZmYzOGY1Pl0g Z29vZGl4X3Jlc2V0KzB4ODUvMHg5MA0KPiBbZ29vZGl4X2JhY2twb3J0XQ0KPiBzZXAgMzAgMTU6 NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8ZjlmZjQwZmE+XQ0KPiBnb29kaXhfdHNfcHJvYmUrMHgx MmEvMHg1YWEgW2dvb2RpeF9iYWNrcG9ydF0NCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJu ZWw6ICBbPGMxNDJhNWE0Pl0gPyBhY3BpX2RldmljZV93YWtldXArMHg3YS8weDgwDQo+IHNlcCAz MCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTQyYWQ4ND5dID8gYWNwaV9kZXZfcG1fYXR0 YWNoKzB4NzEvMHg4Nw0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE5MjQy NzE+XSBpMmNfZGV2aWNlX3Byb2JlKzB4MTIxLzB4MWQwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJs ZXQga2VybmVsOiAgWzxjMWM3N2RhMj5dID8gX3Jhd19zcGluX3VubG9jaysweDIyLzB4MzANCj4g c2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGY5ZmYzZmQwPl0gPw0KPiBnb29kaXhf Y29uZmlnX2NiKzB4YzAvMHhjMCBbZ29vZGl4X2JhY2twb3J0XQ0KPiBzZXAgMzAgMTU6NDg6MTcg dGFibGV0IGtlcm5lbDogIFs8YzE1YjIxMjU+XSA/IGRyaXZlcl9zeXNmc19hZGQrMHg3NS8weGEw DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTViMmIyND5dIGRyaXZlcl9w cm9iZV9kZXZpY2UrMHgyMDQvMHg0YzANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6 ICBbPGMxNWIyZTNjPl0gPyBfX2RyaXZlcl9hdHRhY2grMHg1Yy8weGEwDQo+IHNlcCAzMCAxNTo0 ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTViMmUzYz5dID8gX19kcml2ZXJfYXR0YWNoKzB4NWMv MHhhMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YjJlNzk+XSBfX2Ry aXZlcl9hdHRhY2grMHg5OS8weGEwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAg WzxjMTViMmRlMD5dID8gZHJpdmVyX3Byb2JlX2RldmljZSsweDRjMC8weDRjMA0KPiBzZXAgMzAg MTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YjA5MmY+XSBidXNfZm9yX2VhY2hfZGV2KzB4 NGYvMHg4MA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YjIyZGU+XSBk cml2ZXJfYXR0YWNoKzB4MWUvMHgyMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDog IFs8YzE1YjJkZTA+XSA/IGRyaXZlcl9wcm9iZV9kZXZpY2UrMHg0YzAvMHg0YzANCj4gc2VwIDMw IDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWIxZTc3Pl0gYnVzX2FkZF9kcml2ZXIrMHgx ZjcvMHgyYTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGY5ZmY3MDAwPl0g PyAweGY5ZmY3MDAwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxmOWZmNzAw MD5dID8gMHhmOWZmNzAwMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1 YjM5OGQ+XSBkcml2ZXJfcmVnaXN0ZXIrMHg1ZC8weGYwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJs ZXQga2VybmVsOiAgWzxjMTkyNGRhYT5dIGkyY19yZWdpc3Rlcl9kcml2ZXIrMHgyYS8weGEwDQo+ IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTAwMDQ1Zj5dID8gZG9fb25lX2lu aXRjYWxsKzB4OWYvMHgxZjANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGY5 ZmY3MDEyPl0NCj4gZ29vZGl4X3RzX2RyaXZlcl9pbml0KzB4MTIvMHgxNCBbZ29vZGl4X2JhY2tw b3J0XQ0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEwMDA0NmE+XSBkb19v bmVfaW5pdGNhbGwrMHhhYS8weDFmMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDog IFs8ZjlmZjcwMDA+XSA/IDB4ZjlmZjcwMDANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJu ZWw6ICBbPGMxMGQyNDg2Pl0gPyBfX21pZ2h0X3NsZWVwKzB4MzYvMHhhMA0KPiBzZXAgMzAgMTU6 NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzExMDNmZDQ+XSA/DQo+IHRyYWNlX2hhcmRpcnFzX29u X2NhbGxlcisweDE0LzB4MjIwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxj MTFjMWM1Yz5dID8gZnJlZV9wYWdlc19wcmVwYXJlKzB4MTljLzB4MzgwDQo+IHNlcCAzMCAxNTo0 ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTIwYmNlOD5dID8ga21lbV9jYWNoZV9hbGxvY190cmFj ZSsweGE4LzB4MmEwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTFiYWMz Zj5dID8gZG9faW5pdF9tb2R1bGUrMHgyMS8weDFiMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0 IGtlcm5lbDogIFs8YzExYmFjNmU+XSBkb19pbml0X21vZHVsZSsweDUwLzB4MWIwDQo+IHNlcCAz MCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTE0YjY5Yj5dIGxvYWRfbW9kdWxlKzB4MTNk Yi8weDE5ODANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMTRiZTI5Pl0g U3lTX2Zpbml0X21vZHVsZSsweDg5LzB4ZDANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJu ZWw6ICBbPGMxMWQ5NTMyPl0gPyB2bV9tbWFwX3Bnb2ZmKzB4NjIvMHg4MA0KPiBzZXAgMzAgMTU6 NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzFjNzg3ZjA+XSBzeXNlbnRlcl9kb19jYWxsKzB4MTIv MHgxMg0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogLS0tWyBlbmQgdHJhY2UgZTBm NjYzMDU2NDhiMDYzYSBdLS0tDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBHb29k aXgtVFMgaTJjLUdESVgxMDAxOjAwOiBJRCA5MjcxLCB2ZXJzaW9uOiAxMDIwDQo+IHNlcCAzMCAx NTo0ODoxNyB0YWJsZXQga2VybmVsOiBHb29kaXgtVFMgaTJjLUdESVgxMDAxOjAwOiBEaXJlY3QN Cj4gZmlybXdhcmUgbG9hZCBmb3IgZ29vZGl4XzkyNzFfY2ZnLmJpbiBmYWlsZWQgd2l0aCBlcnJv ciAtMg0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogR29vZGl4LVRTIGkyYy1HRElY MTAwMTowMDogRmFsbGluZyBiYWNrDQo+IHRvIHVzZXIgaGVscGVyDQo+IA0KPiAuLi4gYW5kIGFm dGVyIGEgd2hpbGU6DQo+IA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogaW5wdXQ6 IEdvb2RpeCBDYXBhY2l0aXZlIFRvdWNoU2NyZWVuIGFzDQo+IC9kZXZpY2VzL3BsYXRmb3JtLzgw ODYwRjQxOjA1L2kyYy01L2kyYy1HRElYMTAwMTowMC9pbnB1dC9pbnB1dDYNCj4gc2VwIDMwIDE1 OjQ5OjE3IHRhYmxldCBrZXJuZWw6IC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0t LQ0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogV0FSTklORzogQ1BVOiAxIFBJRDog NzUgYXQNCj4gZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtYmF5dHJhaWwuYzozNDINCj4g Ynl0X2dwaW9fZGlyZWN0aW9uX291dHB1dCsweGExLzB4YjAoKQ0KPiBzZXAgMzAgMTU6NDk6MTcg dGFibGV0IGtlcm5lbDogUG90ZW50aWFsIEVycm9yOiBTZXR0aW5nIEdQSU8gd2l0aA0KPiBkaXJl Y3RfaXJxX2VuIHRvIG91dHB1dA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogTW9k dWxlcyBsaW5rZWQgaW46DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgZ29vZGl4 X2JhY2twb3J0KE9FKSByODcyM2JzKE9FKSBuZnNkDQo+IGxvY2tkIGdyYWNlIHN1bnJwYyBbbGFz dCB1bmxvYWRlZDogZ29vZGl4XQ0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogQ1BV OiAxIFBJRDogNzUgQ29tbToga3dvcmtlci8xOjINCj4gVGFpbnRlZDogRyAgICAgICAgVyAgT0Ug ICA0LjMuMC1yYzErICMzNg0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogSGFyZHdh cmUgbmFtZTogVG8gYmUgZmlsbGVkIGJ5IE8uRS5NLg0KPiBUbyBiZSBmaWxsZWQgYnkgTy5FLk0u L0FwdGlvIENSQiwgQklPUyA1LjYuNSAwNy8yNS8yMDE0DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJs ZXQga2VybmVsOiBXb3JrcXVldWU6IGV2ZW50cyByZXF1ZXN0X2Zpcm13YXJlX3dvcmtfZnVuYw0K PiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIDAwMDAwMDAwIDAwMDAwMDAwIGY3MjE5 Y2U4IGMxM2IzNDdmDQo+IGY3MjE5ZDI4IGY3MjE5ZDE4IGMxMGE5ZTFkIGMyMGYxMGUwDQo+IHNl cCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgZjcyMTlkNDQgMDAwMDAwNGIgYzIwZjExMWMg MDAwMDAxNTYNCj4gYzEzZTdjZTEgYzEzZTdjZTEgZjgwNTgwYjggZjUzYTRiMGMNCj4gc2VwIDMw IDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICAwMDAwMDE1NiBmNzIxOWQzMCBjMTBhOWU5MyAwMDAw MDAwOQ0KPiBmNzIxOWQyOCBjMjBmMTBlMCBmNzIxOWQ0NCBmNzIxOWQ1OA0KPiBzZXAgMzAgMTU6 NDk6MTcgdGFibGV0IGtlcm5lbDogQ2FsbCBUcmFjZToNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxl dCBrZXJuZWw6ICBbPGMxM2IzNDdmPl0gZHVtcF9zdGFjaysweDQ4LzB4NjkNCj4gc2VwIDMwIDE1 OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMGE5ZTFkPl0gd2Fybl9zbG93cGF0aF9jb21tb24r MHg4ZC8weGQwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlN2NlMT5d ID8NCj4gYnl0X2dwaW9fZGlyZWN0aW9uX291dHB1dCsweGExLzB4YjANCj4gc2VwIDMwIDE1OjQ5 OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxM2U3Y2UxPl0gPw0KPiBieXRfZ3Bpb19kaXJlY3Rpb25f b3V0cHV0KzB4YTEvMHhiMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEw YTllOTM+XSB3YXJuX3Nsb3dwYXRoX2ZtdCsweDMzLzB4NDANCj4gc2VwIDMwIDE1OjQ5OjE3IHRh YmxldCBrZXJuZWw6ICBbPGMxM2U3Y2UxPl0gYnl0X2dwaW9fZGlyZWN0aW9uX291dHB1dCsweGEx LzB4YjANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxM2U3YzQwPl0gPyBi eXRfZ3Bpb19pcnFfaGFuZGxlcisweGIwLzB4YjANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBr ZXJuZWw6ICBbPGMxM2VhYmMzPl0NCj4gX2dwaW9kX2RpcmVjdGlvbl9vdXRwdXRfcmF3KzB4NjMv MHgzNTANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMTFkMzBiPl0gPyBm cmVlX2lycSsweDRiLzB4YzANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMx NDJhODdkPl0gPw0KPiBhY3BpX2Rldl9ydW50aW1lX3N1c3BlbmQrMHg3Yi8weDdiDQo+IHNlcCAz MCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlYWYxYT5dIGdwaW9kX2RpcmVjdGlvbl9v dXRwdXQrMHgyYS8weDUwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxmOWZm MzJkMD5dIGdvb2RpeF9zdXNwZW5kKzB4NTAvMHgxMDANCj4gW2dvb2RpeF9iYWNrcG9ydF0NCj4g c2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWJjMGZkPl0gPyBfX3JwbV9jYWxs YmFjaysweDVkLzB4ODANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWJh M2EyPl0NCj4gcG1fZ2VuZXJpY19ydW50aW1lX3N1c3BlbmQrMHgyMi8weDQwDQo+IHNlcCAzMCAx NTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTQyYTg4ZD5dDQo+IGFjcGlfc3Vic3lzX3J1bnRp bWVfc3VzcGVuZCsweDEwLzB4MWUNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBb PGMxNWJjMGQyPl0gX19ycG1fY2FsbGJhY2srMHgzMi8weDgwDQo+IHNlcCAzMCAxNTo0OToxNyB0 YWJsZXQga2VybmVsOiAgWzxjMTQyYTg3ZD5dID8NCj4gYWNwaV9kZXZfcnVudGltZV9zdXNwZW5k KzB4N2IvMHg3Yg0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YmMxNDg+ XSBycG1fY2FsbGJhY2srMHgyOC8weDkwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs OiAgWzxjMTQyYTg3ZD5dID8NCj4gYWNwaV9kZXZfcnVudGltZV9zdXNwZW5kKzB4N2IvMHg3Yg0K PiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YmNlM2E+XSBycG1fc3VzcGVu ZCsweDEyYS8weDcyMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEwZmZm YmI+XSA/IHRyYWNlX2hhcmRpcnFzX29mZisweGIvMHgxMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFi bGV0IGtlcm5lbDogIFs8YzEwZjNmZDQ+XSA/IF9fd2FrZV91cCsweDQ0LzB4NTANCj4gc2VwIDMw IDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWJkNWE2Pl0gcnBtX2lkbGUrMHhhNi8weDQx MA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YmUxYWI+XSB1cGRhdGVf YXV0b3N1c3BlbmQrMHgzYi8weDYwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAg WzxjMTViZTIxOD5dDQo+IHBtX3J1bnRpbWVfc2V0X2F1dG9zdXNwZW5kX2RlbGF5KzB4NDgvMHg2 MA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEwYzQ5NDI+XSA/IHByb2Nl c3Nfb25lX3dvcmsrMHgxMzIvMHg1ZTANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6 ICBbPGY5ZmYzZjgyPl0NCj4gZ29vZGl4X2NvbmZpZ19jYisweDcyLzB4YzAgW2dvb2RpeF9iYWNr cG9ydF0NCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWM4MWFiPl0NCj4g cmVxdWVzdF9maXJtd2FyZV93b3JrX2Z1bmMrMHgyYi8weDUwDQo+IHNlcCAzMCAxNTo0OToxNyB0 YWJsZXQga2VybmVsOiAgWzxjMTBjNDllMD5dIHByb2Nlc3Nfb25lX3dvcmsrMHgxZDAvMHg1ZTAN Cj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMGM0OTQyPl0gPyBwcm9jZXNz X29uZV93b3JrKzB4MTMyLzB4NWUwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAg WzxjMTBjNGUyOT5dIHdvcmtlcl90aHJlYWQrMHgzOS8weDQzMA0KPiBzZXAgMzAgMTU6NDk6MTcg dGFibGV0IGtlcm5lbDogIFs8YzEwYzRkZjA+XSA/IHByb2Nlc3Nfb25lX3dvcmsrMHg1ZTAvMHg1 ZTANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMGNhZTE2Pl0ga3RocmVh ZCsweGE2LzB4YzANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxYzc3ZTE3 Pl0gPyBfcmF3X3NwaW5fdW5sb2NrX2lycSsweDI3LzB4NDANCj4gc2VwIDMwIDE1OjQ5OjE3IHRh YmxldCBrZXJuZWw6ICBbPGMxYzc4NzIxPl0gcmV0X2Zyb21fa2VybmVsX3RocmVhZCsweDIxLzB4 MzANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMGNhZDcwPl0gPw0KPiBr dGhyZWFkX2NyZWF0ZV9vbl9ub2RlKzB4MTMwLzB4MTMwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJs ZXQga2VybmVsOiAtLS1bIGVuZCB0cmFjZSBlMGY2NjMwNTY0OGIwNjNiIF0tLS0NCj4gc2VwIDMw IDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6IC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0t LS0tLQ0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogV0FSTklORzogQ1BVOiAyIFBJ RDogMjM1MyBhdA0KPiBkcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1iYXl0cmFpbC5jOjM0 Mg0KPiBieXRfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KzB4YTEvMHhiMCgpDQo+IHNlcCAzMCAxNTo0 OToxNyB0YWJsZXQga2VybmVsOiBQb3RlbnRpYWwgRXJyb3I6IFNldHRpbmcgR1BJTyB3aXRoDQo+ IGRpcmVjdF9pcnFfZW4gdG8gb3V0cHV0DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs OiBNb2R1bGVzIGxpbmtlZCBpbjoNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBn b29kaXhfYmFja3BvcnQoT0UpIHI4NzIzYnMoT0UpIG5mc2QNCj4gbG9ja2QgZ3JhY2Ugc3VucnBj IFtsYXN0IHVubG9hZGVkOiBnb29kaXhdDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs OiBDUFU6IDIgUElEOiAyMzUzIENvbW06IHN5c3RlbWQtdWRldmQNCj4gVGFpbnRlZDogRyAgICAg ICAgVyAgT0UgICA0LjMuMC1yYzErICMzNg0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5l bDogSGFyZHdhcmUgbmFtZTogVG8gYmUgZmlsbGVkIGJ5IE8uRS5NLg0KPiBUbyBiZSBmaWxsZWQg YnkgTy5FLk0uL0FwdGlvIENSQiwgQklPUyA1LjYuNSAwNy8yNS8yMDE0DQo+IHNlcCAzMCAxNTo0 OToxNyB0YWJsZXQga2VybmVsOiAgMDAwMDAwMDAgMDAwMDAwMDAgZDhiYmRjNzAgYzEzYjM0N2YN Cj4gZDhiYmRjYjAgZDhiYmRjYTAgYzEwYTllMWQgYzIwZjEwZTANCj4gc2VwIDMwIDE1OjQ5OjE3 IHRhYmxldCBrZXJuZWw6ICBkOGJiZGNjYyAwMDAwMDkzMSBjMjBmMTExYyAwMDAwMDE1Ng0KPiBj MTNlN2NlMSBjMTNlN2NlMSBmODA1ODBiOCBmNTNhNGIwYw0KPiBzZXAgMzAgMTU6NDk6MTcgdGFi bGV0IGtlcm5lbDogIDAwMDAwMTU2IGQ4YmJkY2I4IGMxMGE5ZTkzIDAwMDAwMDA5DQo+IGQ4YmJk Y2IwIGMyMGYxMGUwIGQ4YmJkY2NjIGQ4YmJkY2UwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQg a2VybmVsOiBDYWxsIFRyYWNlOg0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8 YzEzYjM0N2Y+XSBkdW1wX3N0YWNrKzB4NDgvMHg2OQ0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0 IGtlcm5lbDogIFs8YzEwYTllMWQ+XSB3YXJuX3Nsb3dwYXRoX2NvbW1vbisweDhkLzB4ZDANCj4g c2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxM2U3Y2UxPl0gPw0KPiBieXRfZ3Bp b19kaXJlY3Rpb25fb3V0cHV0KzB4YTEvMHhiMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtl cm5lbDogIFs8YzEzZTdjZTE+XSA/DQo+IGJ5dF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQrMHhhMS8w eGIwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTBhOWU5Mz5dIHdhcm5f c2xvd3BhdGhfZm10KzB4MzMvMHg0MA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDog IFs8YzEzZTdjZTE+XSBieXRfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KzB4YTEvMHhiMA0KPiBzZXAg MzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzZTdjNDA+XSA/IGJ5dF9ncGlvX2lycV9o YW5kbGVyKzB4YjAvMHhiMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEz ZWFiYzM+XQ0KPiBfZ3Bpb2RfZGlyZWN0aW9uX291dHB1dF9yYXcrMHg2My8weDM1MA0KPiBzZXAg MzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE0MmE2YWE+XSA/IGFjcGlfZGV2X3J1bnRp bWVfcmVzdW1lKzB4MzcvMHgzNw0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8 YzEzZWFmMWE+XSBncGlvZF9kaXJlY3Rpb25fb3V0cHV0KzB4MmEvMHg1MA0KPiBzZXAgMzAgMTU6 NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE0MmE1YTQ+XSA/IGFjcGlfZGV2aWNlX3dha2V1cCsw eDdhLzB4ODANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGY5ZmYzODI3Pl0g Z29vZGl4X3Jlc3VtZSsweDI3LzB4NzANCj4gW2dvb2RpeF9iYWNrcG9ydF0NCj4gc2VwIDMwIDE1 OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWJhM2UyPl0gcG1fZ2VuZXJpY19ydW50aW1lX3Jl c3VtZSsweDIyLzB4NDANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNDJh NmM1Pl0NCj4gYWNwaV9zdWJzeXNfcnVudGltZV9yZXN1bWUrMHgxYi8weDFlDQo+IHNlcCAzMCAx NTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTViYzBkMj5dIF9fcnBtX2NhbGxiYWNrKzB4MzIv MHg4MA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE0MmE2YWE+XSA/IGFj cGlfZGV2X3J1bnRpbWVfcmVzdW1lKzB4MzcvMHgzNw0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0 IGtlcm5lbDogIFs8YzE1YmMxNDg+XSBycG1fY2FsbGJhY2srMHgyOC8weDkwDQo+IHNlcCAzMCAx NTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTQyYTZhYT5dID8gYWNwaV9kZXZfcnVudGltZV9y ZXN1bWUrMHgzNy8weDM3DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTVi Y2FiMz5dIHJwbV9yZXN1bWUrMHg1MDMvMHg3NjANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBr ZXJuZWw6ICBbPGMxMGY0NzEwPl0gPyB3YWtlX2F0b21pY190X2Z1bmN0aW9uKzB4NzAvMHg3MA0K PiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YmRlMWU+XSBfX3BtX3J1bnRp bWVfcmVzdW1lKzB4NGUvMHg5MA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8 ZjlmZjM3Nzc+XSBnb29kaXhfb3BlbisweDM3LzB4OTANCj4gW2dvb2RpeF9iYWNrcG9ydF0NCj4g c2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxOGY5ZTNmPl0gaW5wdXRfb3Blbl9k ZXZpY2UrMHg3Zi8weGEwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTkw MmM1Yj5dIGV2ZGV2X29wZW4rMHgxNmIvMHgxYTANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBr ZXJuZWw6ICBbPGMxMjFiOWZkPl0gY2hyZGV2X29wZW4rMHg4ZC8weDFhMA0KPiBzZXAgMzAgMTU6 NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEyMWI5NzA+XSA/IGNkZXZfcHV0KzB4MjAvMHgyMA0K PiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEyMTUyMzA+XSBkb19kZW50cnlf b3Blbi5pc3JhLjE2KzB4MTMwLzB4MmQwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs OiAgWzxjMTIxYjk3MD5dID8gY2Rldl9wdXQrMHgyMC8weDIwDQo+IHNlcCAzMCAxNTo0OToxNyB0 YWJsZXQga2VybmVsOiAgWzxjMTIxNjcwZj5dIHZmc19vcGVuKzB4NGYvMHg2MA0KPiBzZXAgMzAg MTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEyMjVlMjI+XSBwYXRoX29wZW5hdCsweDFhMi8w eDEwYjANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMWU5MjI0Pl0gPyB1 bm1hcF9zaW5nbGVfdm1hKzB4M2Q0LzB4NTYwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2Vy bmVsOiAgWzxjMTFjYjE4Mj5dID8gcmVsZWFzZV9wYWdlcysweGIyLzB4MWMwDQo+IHNlcCAzMCAx NTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTIyN2Q0Mj5dIGRvX2ZpbHBfb3BlbisweDYyLzB4 YzANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxYzc3ZGEyPl0gPyBfcmF3 X3NwaW5fdW5sb2NrKzB4MjIvMHgzMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDog IFs8YzEyMzgxYjc+XSA/IF9fYWxsb2NfZmQrMHg5Ny8weDE2MA0KPiBzZXAgMzAgMTU6NDk6MTcg dGFibGV0IGtlcm5lbDogIFs8YzEyMTZhYzg+XSBkb19zeXNfb3BlbisweDExOC8weDIxMA0KPiBz ZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEyMTZiZTI+XSBTeVNfb3BlbisweDIy LzB4MzANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxYzc4N2YwPl0gc3lz ZW50ZXJfZG9fY2FsbCsweDEyLzB4MTINCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6 IC0tLVsgZW5kIHRyYWNlIGUwZjY2MzA1NjQ4YjA2M2MgXS0tLQ0KPiBzZXAgMzAgMTU6NDk6MTcg dGFibGV0IGtlcm5lbDogLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tDQo+IHNl cCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiBXQVJOSU5HOiBDUFU6IDIgUElEOiAyMzUzIGF0 DQo+IGRyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWJheXRyYWlsLmM6MzQyDQo+IGJ5dF9n cGlvX2RpcmVjdGlvbl9vdXRwdXQrMHhhMS8weGIwKCkNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxl dCBrZXJuZWw6IFBvdGVudGlhbCBFcnJvcjogU2V0dGluZyBHUElPIHdpdGgNCj4gZGlyZWN0X2ly cV9lbiB0byBvdXRwdXQNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6IE1vZHVsZXMg bGlua2VkIGluOg0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIGdvb2RpeF9iYWNr cG9ydChPRSkgcjg3MjNicyhPRSkgbmZzZA0KPiBsb2NrZCBncmFjZSBzdW5ycGMgW2xhc3QgdW5s b2FkZWQ6IGdvb2RpeF0NCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6IENQVTogMiBQ SUQ6IDIzNTMgQ29tbTogc3lzdGVtZC11ZGV2ZA0KPiBUYWludGVkOiBHICAgICAgICBXICBPRSAg IDQuMy4wLXJjMSsgIzM2DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiBIYXJkd2Fy ZSBuYW1lOiBUbyBiZSBmaWxsZWQgYnkgTy5FLk0uDQo+IFRvIGJlIGZpbGxlZCBieSBPLkUuTS4v QXB0aW8gQ1JCLCBCSU9TIDUuNi41IDA3LzI1LzIwMTQNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxl dCBrZXJuZWw6ICAwMDAwMDAwMCAwMDAwMDAwMCBkOGJiZGM2NCBjMTNiMzQ3Zg0KPiBkOGJiZGNh NCBkOGJiZGM5NCBjMTBhOWUxZCBjMjBmMTBlMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtl cm5lbDogIGQ4YmJkY2MwIDAwMDAwOTMxIGMyMGYxMTFjIDAwMDAwMTU2DQo+IGMxM2U3Y2UxIGMx M2U3Y2UxIGY4MDU4MGI4IGY1M2E0YjBjDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs OiAgMDAwMDAxNTYgZDhiYmRjYWMgYzEwYTllOTMgMDAwMDAwMDkNCj4gZDhiYmRjYTQgYzIwZjEw ZTAgZDhiYmRjYzAgZDhiYmRjZDQNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6IENh bGwgVHJhY2U6DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNiMzQ3Zj5d IGR1bXBfc3RhY2srMHg0OC8weDY5DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAg WzxjMTBhOWUxZD5dIHdhcm5fc2xvd3BhdGhfY29tbW9uKzB4OGQvMHhkMA0KPiBzZXAgMzAgMTU6 NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzZTdjZTE+XSA/DQo+IGJ5dF9ncGlvX2RpcmVjdGlv bl9vdXRwdXQrMHhhMS8weGIwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxj MTNlN2NlMT5dID8NCj4gYnl0X2dwaW9fZGlyZWN0aW9uX291dHB1dCsweGExLzB4YjANCj4gc2Vw IDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMGE5ZTkzPl0gd2Fybl9zbG93cGF0aF9m bXQrMHgzMy8weDQwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlN2Nl MT5dIGJ5dF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQrMHhhMS8weGIwDQo+IHNlcCAzMCAxNTo0OTox NyB0YWJsZXQga2VybmVsOiAgWzxjMTNlN2M0MD5dID8gYnl0X2dwaW9faXJxX2hhbmRsZXIrMHhi MC8weGIwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlYWJjMz5dDQo+ IF9ncGlvZF9kaXJlY3Rpb25fb3V0cHV0X3JhdysweDYzLzB4MzUwDQo+IHNlcCAzMCAxNTo0OTox NyB0YWJsZXQga2VybmVsOiAgWzxjMWM3NmVmND5dID8NCj4gc2NoZWR1bGVfaHJ0aW1lb3V0X3Jh bmdlX2Nsb2NrKzB4MTA0LzB4MjgwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAg WzxjMTQyYTZhYT5dID8gYWNwaV9kZXZfcnVudGltZV9yZXN1bWUrMHgzNy8weDM3DQo+IHNlcCAz MCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlYWYxYT5dIGdwaW9kX2RpcmVjdGlvbl9v dXRwdXQrMHgyYS8weDUwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxmOWZm MzdlND5dDQo+IGdvb2RpeF9pbnRfc3luYy5pc3JhLjQrMHgxNC8weDMwIFtnb29kaXhfYmFja3Bv cnRdDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxmOWZmMzg0Nz5dIGdvb2Rp eF9yZXN1bWUrMHg0Ny8weDcwDQo+IFtnb29kaXhfYmFja3BvcnRdDQo+IHNlcCAzMCAxNTo0OTox NyB0YWJsZXQga2VybmVsOiAgWzxjMTViYTNlMj5dIHBtX2dlbmVyaWNfcnVudGltZV9yZXN1bWUr MHgyMi8weDQwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTQyYTZjNT5d DQo+IGFjcGlfc3Vic3lzX3J1bnRpbWVfcmVzdW1lKzB4MWIvMHgxZQ0KPiBzZXAgMzAgMTU6NDk6 MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YmMwZDI+XSBfX3JwbV9jYWxsYmFjaysweDMyLzB4ODAN Cj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNDJhNmFhPl0gPyBhY3BpX2Rl dl9ydW50aW1lX3Jlc3VtZSsweDM3LzB4MzcNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJu ZWw6ICBbPGMxNWJjMTQ4Pl0gcnBtX2NhbGxiYWNrKzB4MjgvMHg5MA0KPiBzZXAgMzAgMTU6NDk6 MTcgdGFibGV0IGtlcm5lbDogIFs8YzE0MmE2YWE+XSA/IGFjcGlfZGV2X3J1bnRpbWVfcmVzdW1l KzB4MzcvMHgzNw0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YmNhYjM+ XSBycG1fcmVzdW1lKzB4NTAzLzB4NzYwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs OiAgWzxjMTBmNDcxMD5dID8gd2FrZV9hdG9taWNfdF9mdW5jdGlvbisweDcwLzB4NzANCj4gc2Vw IDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWJkZTFlPl0gX19wbV9ydW50aW1lX3Jl c3VtZSsweDRlLzB4OTANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGY5ZmYz Nzc3Pl0gZ29vZGl4X29wZW4rMHgzNy8weDkwDQo+IFtnb29kaXhfYmFja3BvcnRdDQo+IHNlcCAz MCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMThmOWUzZj5dIGlucHV0X29wZW5fZGV2aWNl KzB4N2YvMHhhMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE5MDJjNWI+ XSBldmRldl9vcGVuKzB4MTZiLzB4MWEwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs OiAgWzxjMTIxYjlmZD5dIGNocmRldl9vcGVuKzB4OGQvMHgxYTANCj4gc2VwIDMwIDE1OjQ5OjE3 IHRhYmxldCBrZXJuZWw6ICBbPGMxMjFiOTcwPl0gPyBjZGV2X3B1dCsweDIwLzB4MjANCj4gc2Vw IDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMjE1MjMwPl0gZG9fZGVudHJ5X29wZW4u aXNyYS4xNisweDEzMC8weDJkMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8 YzEyMWI5NzA+XSA/IGNkZXZfcHV0KzB4MjAvMHgyMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0 IGtlcm5lbDogIFs8YzEyMTY3MGY+XSB2ZnNfb3BlbisweDRmLzB4NjANCj4gc2VwIDMwIDE1OjQ5 OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMjI1ZTIyPl0gcGF0aF9vcGVuYXQrMHgxYTIvMHgxMGIw DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTFlOTIyND5dID8gdW5tYXBf c2luZ2xlX3ZtYSsweDNkNC8weDU2MA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDog IFs8YzExY2IxODI+XSA/IHJlbGVhc2VfcGFnZXMrMHhiMi8weDFjMA0KPiBzZXAgMzAgMTU6NDk6 MTcgdGFibGV0IGtlcm5lbDogIFs8YzEyMjdkNDI+XSBkb19maWxwX29wZW4rMHg2Mi8weGMwDQo+ IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMWM3N2RhMj5dID8gX3Jhd19zcGlu X3VubG9jaysweDIyLzB4MzANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMx MjM4MWI3Pl0gPyBfX2FsbG9jX2ZkKzB4OTcvMHgxNjANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxl dCBrZXJuZWw6ICBbPGMxMjE2YWM4Pl0gZG9fc3lzX29wZW4rMHgxMTgvMHgyMTANCj4gc2VwIDMw IDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMjE2YmUyPl0gU3lTX29wZW4rMHgyMi8weDMw DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMWM3ODdmMD5dIHN5c2VudGVy X2RvX2NhbGwrMHgxMi8weDEyDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAtLS1b IGVuZCB0cmFjZSBlMGY2NjMwNTY0OGIwNjNkIF0tLS0NCj4gDQo+IFRoZSB0b3VjaHNjcmVlbiB3 b3JrcyB0aG91Z2ggYWZ0ZXIgdGhpcy4gVGhpcyBpcyBhbGwgb3ZlciB+NC4zLjAtcmMxDQo+IChh N2Q1YzE4OTcxOTgsIGEgY291cGxlIG9mIHdlZWtzIG9sZCkNCj4gDQoNClRoaXMgaXMgd2hhdCBJ IGV4cGVjdGVkIHRvIGhhcHBlbi4gSG93ZXZlciwgaXQgaXMgcmF0aGVyIGFubm95aW5nIHRvIHJl Y2VpdmUNCnRoaXMgYmF5dHJhaWwgcGluY3RybCB3YXJuaW5nIGV2ZXJ5IHRpbWUgZ3Bpb2RfZGly ZWN0aW9uX291dHB1dCBpcyBjYWxsZWQgZm9yDQp0aGUgaW50ZXJydXB0IGdwaW8gcGluIChub3Qg dG8gbWVudGlvbiBkZWxheXMgaW4gaW5pdGlhbGl6YXRpb24pLiBJIHRoaW5rIHRoZSBzYWZlc3QN CndheSBpcyB0byByZW1vdmUgdGhlIG5ld2x5IGFkZGVkIGZ1bmN0aW9uYWxpdHkgZm9yIHRoaXMg ZGV2aWNlIGFzIHdlbGwuDQoNCj4gPg0KPiA+IElmIGFsbCB0aGF0IGZhaWxzLCBjb3VsZCB5b3Ug cGxlYXNlIHNlbmQgdGhlIG91dHB1dCBvZiAiZG1pZGVjb2RlIiB0bw0KPiA+IElyaW5hPw0KPiAN Cj4gQXR0YWNoZWQuDQo+IA0KDQpBcHBhcmVudGx5IHRoZSBzeXN0ZW0gdmVuZG9yIGFuZCBwcm9k dWN0IG5hbWUgYXJlIG5vdCBzZXQgZm9yIHRoaXMgZGV2aWNlDQooIlRvIGJlIGZpbGxlZCBieSBP LkUuTS4iKS4gQWx0aG91Z2ggaXQgaXMgbm90IGFzIHJlbGlhYmxlLCBJIHdpbGwgZG8gdGhlIGRt aSBtYXRjaA0KdXNpbmcgQklPUyB2ZW5kb3IsIHByb2R1Y3QgVVVJRCwgYm9hcmQgdmVuZG9yIGFu ZCBib2FyZCBuYW1lLiBQbGVhc2UgbGV0DQptZSBrbm93IGlmIHlvdSBzZWUgYW55IHByb2JsZW0g d2l0aCB0aGlzIGFwcHJvYWNoLg0KDQpJIHdpbGwgc2VuZCBhIG5ldyB2ZXJzaW9uIG9mIHBhdGNo ZXMgaW4gd2hpY2ggdGhlIGZ1bmN0aW9uYWxpdHkgdGhhdCBkZXBlbmRzDQpvbiB0aGUgZ3BpbyBw aW5zIGlzIHNraXBwZWQgZm9yIE9uZGEgdjk3NXcsIFdpbkJvb2sgVFcxMDAgYW5kDQpXaW5Cb29r IFRXNzAwLiANCg0KVGhhbmtzLA0KSXJpbmENCg0KPiBDaGVlcnMsDQo+ICAgQ2FybG9zDQo= -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web