From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from na3sys009aog104.obsmtp.com ([74.125.149.73]:54216 "EHLO na3sys009aog104.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752781Ab1DGDOZ (ORCPT ); Wed, 6 Apr 2011 23:14:25 -0400 From: Kassey Li To: Guennadi Liakhovetski , Qing Xu CC: Laurent Pinchart , Linux Media Mailing List Date: Wed, 6 Apr 2011 20:12:55 -0700 Subject: RE: soc-camera jpeg support? Message-ID: <4737A960563B524DA805CA602BE04B30601048A46C@SC-VEXCH2.marvell.com> References: <1294368595-2518-1-git-send-email-qingx@marvell.com> <7BAC95F5A7E67643AAFB2C31BEE662D014040171EE@SC-VEXCH2.marvell.com> <201101101133.01636.laurent.pinchart@ideasonboard.com> <7BAC95F5A7E67643AAFB2C31BEE662D014040BF237@SC-VEXCH2.marvell.com> <7BAC95F5A7E67643AAFB2C31BEE662D014040BF2EF@SC-VEXCH2.marvell.com> <7BAC95F5A7E67643AAFB2C31BEE662D014040BF54D@SC-VEXCH2.marvell.com> In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 List-ID: Sender: SGksIEd1ZW5uYWRpOg0KDQoJRG8geW91IG1lYW4gdGhpcyA/DQoNClNpZ25lZC1vZmYtYnk6IFFp bmcgWHUgPHFpbmd4QG1hcnZlbGwuY29tPg0KU2lnbmVkLW9mZi1ieTogS2Fzc2V5IExlZSA8eWds aUBtYXJ2ZWxsLmNvbT4NCi0tLQ0KIGRyaXZlcnMvbWVkaWEvdmlkZW8vc29jX21lZGlhYnVzLmMg fCAgICA5ICsrKysrKysrKw0KIGluY2x1ZGUvbWVkaWEvc29jX21lZGlhYnVzLmggICAgICAgfCAg ICAxICsNCiBpbmNsdWRlL21lZGlhL3Y0bDItbWVkaWFidXMuaCAgICAgIHwgICAgMSArDQogMyBm aWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9zb2NfbWVkaWFidXMuYyBiL2RyaXZlcnMvbWVkaWEv dmlkZW8vc29jX21lZGlhYnVzLmMNCmluZGV4IDkxMzkxMjEuLmEzM2Y5ZWMgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NvY19tZWRpYWJ1cy5jDQorKysgYi9kcml2ZXJzL21lZGlh L3ZpZGVvL3NvY19tZWRpYWJ1cy5jDQpAQCAtMTMwLDYgKzEzMCwxMyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHNvY19tYnVzX3BpeGVsZm10IG1idXNfZm10W10gPSB7DQogCQkucGFja2luZwkJPSBT T0NfTUJVU19QQUNLSU5HXzJYOF9QQURMTywNCiAJCS5vcmRlcgkJCT0gU09DX01CVVNfT1JERVJf QkUsDQogCX0sDQorCVtNQlVTX0lEWChKUEVHXzFYOCldID0gew0KKwkJLmZvdXJjYyAgICAgICAg ICAgICAgICAgPSBWNEwyX1BJWF9GTVRfSlBFRywNCisJCS5uYW1lICAgICAgICAgICAgICAgICAg ID0gIkpQRUciLA0KKwkJLmJpdHNfcGVyX3NhbXBsZSAgICAgICAgPSA4LA0KKwkJLnBhY2tpbmcg ICAgICAgICAgICAgICAgPSBTT0NfTUJVU19QQUNLSU5HX1ZBUklBQkxFLA0KKwkJLm9yZGVyICAg ICAgICAgICAgICAgICAgPSBTT0NfTUJVU19PUkRFUl9MRSwNCisJfSwNCiB9Ow0KIA0KIHMzMiBz b2NfbWJ1c19ieXRlc19wZXJfbGluZSh1MzIgd2lkdGgsIGNvbnN0IHN0cnVjdCBzb2NfbWJ1c19w aXhlbGZtdCAqbWYpIEBAIC0xNDEsNiArMTQ4LDggQEAgczMyIHNvY19tYnVzX2J5dGVzX3Blcl9s aW5lKHUzMiB3aWR0aCwgY29uc3Qgc3RydWN0IHNvY19tYnVzX3BpeGVsZm10ICptZikNCiAJY2Fz ZSBTT0NfTUJVU19QQUNLSU5HXzJYOF9QQURMTzoNCiAJY2FzZSBTT0NfTUJVU19QQUNLSU5HX0VY VEVORDE2Og0KIAkJcmV0dXJuIHdpZHRoICogMjsNCisJY2FzZSBTT0NfTUJVU19QQUNLSU5HX1ZB UklBQkxFOg0KKwkJcmV0dXJuIDA7DQogCX0NCiAJcmV0dXJuIC1FSU5WQUw7DQogfQ0KZGlmZiAt LWdpdCBhL2luY2x1ZGUvbWVkaWEvc29jX21lZGlhYnVzLmggYi9pbmNsdWRlL21lZGlhL3NvY19t ZWRpYWJ1cy5oIGluZGV4IDAzN2NkN2IuLmQzNTE0MDggMTAwNjQ0DQotLS0gYS9pbmNsdWRlL21l ZGlhL3NvY19tZWRpYWJ1cy5oDQorKysgYi9pbmNsdWRlL21lZGlhL3NvY19tZWRpYWJ1cy5oDQpA QCAtMjksNiArMjksNyBAQCBlbnVtIHNvY19tYnVzX3BhY2tpbmcgew0KIAlTT0NfTUJVU19QQUNL SU5HXzJYOF9QQURISSwNCiAJU09DX01CVVNfUEFDS0lOR18yWDhfUEFETE8sDQogCVNPQ19NQlVT X1BBQ0tJTkdfRVhURU5EMTYsDQorCVNPQ19NQlVTX1BBQ0tJTkdfVkFSSUFCTEUsDQogfTsNCiAN CiAvKioNCmRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL3Y0bDItbWVkaWFidXMuaCBiL2luY2x1 ZGUvbWVkaWEvdjRsMi1tZWRpYWJ1cy5oIGluZGV4IDhlNjU1OTguLmYwZDkxNDYgMTAwNjQ0DQot LS0gYS9pbmNsdWRlL21lZGlhL3Y0bDItbWVkaWFidXMuaA0KKysrIGIvaW5jbHVkZS9tZWRpYS92 NGwyLW1lZGlhYnVzLmgNCkBAIC01NCw2ICs1NCw3IEBAIGVudW0gdjRsMl9tYnVzX3BpeGVsY29k ZSB7DQogCVY0TDJfTUJVU19GTVRfWVZZVThfMV81WDgsDQogCVY0TDJfTUJVU19GTVRfVVlWWThf MV81WDgsDQogCVY0TDJfTUJVU19GTVRfVllVWThfMV81WDgsDQorCVY0TDJfTUJVU19GTVRfSlBF R18xWDgsDQogfTsNCg0KDQpCZXN0IHJlZ2FyZHMNCkthc3NleSBMZWUNCkVtYWlsOiB5Z2xpQG1h cnZlbGwuY29tDQpBcHBsaWNhdGlvbiBQcm9jZXNzb3IgU3lzdGVtcyBFbmdpbmVlcmluZywgTWFy dmVsbCBUZWNobm9sb2d5IEdyb3VwIEx0ZC4NClNoYW5naGFpLCBDaGluYS4NCg0KLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGxpbnV4LW1lZGlhLW93bmVyQHZnZXIua2VybmVsLm9y ZyBbbWFpbHRvOmxpbnV4LW1lZGlhLW93bmVyQHZnZXIua2VybmVsLm9yZ10gT24gQmVoYWxmIE9m IEd1ZW5uYWRpIExpYWtob3ZldHNraQ0KU2VudDogMjAxMeW5tDHmnIgyMOaXpSAwOjAwDQpUbzog UWluZyBYdQ0KQ2M6IExhdXJlbnQgUGluY2hhcnQ7IExpbnV4IE1lZGlhIE1haWxpbmcgTGlzdA0K U3ViamVjdDogUkU6IHNvYy1jYW1lcmEganBlZyBzdXBwb3J0Pw0KDQpPbiBUdWUsIDE4IEphbiAy MDExLCBRaW5nIFh1IHdyb3RlOg0KDQo+IA0KPiBTb3JyeSwgd2hpY2ggc29sdXRpb24geW91IHdv dWxkIGxpa2UgbWUgdG8gaW1wbGVtZW50Pw0KPiAoMSkgaXMgdG8gYWRkIFNPQ19NQlVTX1BBQ0tJ TkdfVkFSSUFCTEUgZGVmaW5lIGFuZCBhZGQgZXJyb3IgY29kZSBpbiANCj4gc29jX21idXNfYnl0 ZXNfcGVyX2xpbmUoKSwNCj4gYW5kICgyKSBpcyB0byBpbXBsZW1lbnQgaW50ICgqdHJ5X2ZtdCko c3RydWN0IHY0bDJfc3ViZGV2ICpzZCwgc3RydWN0IA0KPiB2NGwyX2Zvcm1hdCAqZm10KTsgaW4g c3ViZGV2LCBkaXJlY3RseSBnZXQgVjRMMl9QSVhfRk1UX0pQRUcgaW5mbyBmcm9tIA0KPiBob3N0 IGRyaXZlci4NCg0KTnVtYmVyICgxKSwgcGxlYXNlLiBTZW5zb3IgZHJpdmVycyBzaG91bGQgbm90 IHVzZSB2NGwyX2Zvcm1hdCwgb25seSANCm1lZGlhYnVzIGZvcm1hdHMuIFlvdXIgaG9zdCBkcml2 ZXIgc2hvdWxkIHByb2NlZWQgYXMgdXN1YWw6IGlmIHRoZSB1c2VyIGlzIA0KcmVxdWVzdGluZyB0 aGUgSlBFRyBmb3VyY2MgZm9ybWF0IGZyb20gaXQsIGl0IHNob3VsZCBsb29rIGluIHRoZSBmb3Jt YXQgDQp0cmFuc2xhdGlvbiB0YWJsZSwgZmluZCB0aGVyZSB0aGUgcmVzcGVjdGl2ZSBKUEVHIG1l ZGlhYnVzIGNvZGUsIGFuZCANCmNvbmZpZ3VyZSB0aGUgc2Vuc29yIHdpdGggaXQuIE9ubHkgd2hl biBjYWxjdWxhdGluZyBidWZmZXIgc2l6ZXMgdGhlIGhvc3QgDQpkcml2ZXIgd2lsbCBoYXZlIHRv IHRyZWF0IEpQRUcgc3BlY2lhbGx5LiBUaGlzIHdheSB5b3UgaGF2ZSB0byBhZGQgMyANCnRoaW5n cyB0byB0aGUgZ2VuZXJpYyBjb2RlOiBkZWZpbml0aW9ucyBmb3IgSlBFRyBtZWRpYWJ1cyBjb2Rl IGFuZCBhIA0KdmFyaWFibGUtbGluZSBsZW5ndGggcGFja2luZywgYW5kIGFuIGVudHJ5IHRvIHRo ZSBmb3VyY2MtbWVkaWFidXMgDQp0cmFuc2xhdGlvbiB0YWJsZS4NCg0KVGhhbmtzDQpHdWVubmFk aQ0KDQo+IA0KPiAtUWluZw0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJv bTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIFttYWlsdG86Zy5saWFraG92ZXRza2lAZ214LmRlXQ0K PiBTZW50OiAyMDEx5bm0MeaciDE55pelIDE6MzENCj4gVG86IFFpbmcgWHUNCj4gQ2M6IExhdXJl bnQgUGluY2hhcnQ7IExpbnV4IE1lZGlhIE1haWxpbmcgTGlzdA0KPiBTdWJqZWN0OiBSRTogc29j LWNhbWVyYSBqcGVnIHN1cHBvcnQ/DQo+IA0KPiBUaGFua3MgZm9yIHRoZSBjb2RlISBXaXRoIGl0 IGF0IGhhbmQgaXQgaXMgZ29pbmcgdG8gYmUgZWFzaWVyIHRvDQo+IHVuZGVyc3RhbmQgYW5kIGV2 YWx1YXRlIGNoYW5nZXMsIHRoYXQgeW91IHByb3Bvc2UgdG8gdGhlIGdlbmVyaWMgbW9kdWxlcy4N Cj4gDQo+IE9uIE1vbiwgMTcgSmFuIDIwMTEsIFFpbmcgWHUgd3JvdGU6DQo+IA0KPiA+IEhpLCBH dWVubmFkaSwNCj4gPg0KPiA+IE9oLCB5ZXMsIEkgYWdyZWUgd2l0aCB5b3UsIHlvdSBhcmUgcmln aHQsIGl0IGlzIHJlYWxseSBub3QgdGhhdCBzaW1wbGUsDQo+ID4gSlBFRyBpcyBhbHdheXMgYSBo ZWFkYWNoZSw6KCwgYXMgaXQgaXMgcXVpdGUgZGlmZmVyZW50IGZyb20gb3JpZ2luYWwNCj4gPiB5 dXYvcmdiIGZvcm1hdCwgaXQgaGFzIG5laXRoZXIgZml4ZWQgYml0cy1wZXItc2FtcGxlLCBub3Ig Zml4ZWQNCj4gPiBwYWNraW5nL2J5dGVzLXBlci1saW5lL3Blci1mcmFtZSwgc28gd2hlbiBjb2Rp bmcsIEkganVzdCBoYWNrIHZhbHVlIG9mDQo+ID4gLmJpdHNfcGVyX3NhbXBsZSBhbmQgLnBhY2tp bmcsIGluIGZhY3QsIHlvdSB3aWxsIHNlZSBpbiBvdXIgaG9zdCBkcml2ZXIsDQo+ID4gaWYgd2Ug ZmluZCBpdCBpcyBKUEVHLCB3aWxsIGlnbm9yZSBieXRlcy1wZXItbGluZSB2YWx1ZSwgZm9yIGV4 YW1wbGUsIGluDQo+ID4gcHhhOTU1X3ZpZGVvYnVmX3ByZXBhcmUoKSwgZm9yIGpwZWcsIHdlIGFs d2F5cyBhbGxvY2F0ZSBmaXhlZCBidWZmZXINCj4gPiBzaXplIGZvciBpdCAob3IsIGEgYmV0dGVy IG1ldGhvZCBpcyB0byBhbGxvY2F0ZSBidWZmZXIgc2l6ZSA9DQo+ID4gd2lkdGgqaGVpZ2h0L2pw ZWctY29tcHJlc3MtcmF0aW8pLg0KPiA+DQo+ID4gSSBoYXZlIDIgaWRlYXM6DQo+ID4gMSkgRG8g eW91IHRoaW5rIGl0IGlzIHJlYXNvbmFibGUgdG8gYWRkIGEgbm90LWZpeGVkIGRlZmluZSBpbnRv IHNvY19tYnVzX3BhY2tpbmc6DQo+ID4gZW51bSBzb2NfbWJ1c19wYWNraW5nIHsNCj4gPiAgICAg ICAgIFNPQ19NQlVTX1BBQ0tJTkdfTk9UX0ZJWEVELA0KPiA+ICAgICAgICAgLi4uDQo+ID4gfTsN Cj4gPiBBbmQgdGhlbiwgLmJpdHNfcGVyX3NhbXBsZSAgICAgID0gMCwgLyogaW5kaWNhdGUgdGhh dCBzYW1wbGUgYml0cyBpcyBub3QtZml4ZWQqLw0KPiA+IEFuZCwgaW4gZnVuY3Rpb246DQo+ID4g czMyIHNvY19tYnVzX2J5dGVzX3Blcl9saW5lKHUzMiB3aWR0aCwgY29uc3Qgc3RydWN0IHNvY19t YnVzX3BpeGVsZm10ICptZikNCj4gPiB7DQo+ID4gICAgICAgICBzd2l0Y2ggKG1mLT5wYWNraW5n KSB7DQo+ID4gICAgICAgICAgICAgICAgIGNhc2UgU09DX01CVVNfUEFDS0lOR19OT1RfRklYRUQ6 DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4gICAgICAgICAgICAg ICAgIGNhc2UgU09DX01CVVNfUEFDS0lOR19OT05FOg0KPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiB3aWR0aCAqIG1mLT5iaXRzX3Blcl9zYW1wbGUgLyA4Ow0KPiA+ICAgICAgICAg ICAgICAgICAuLi4NCj4gPiAgICAgICAgIH0NCj4gPiAgICAgICAgIHJldHVybiAtRUlOVkFMOw0K PiA+IH0NCj4gPg0KPiA+IDIpIE9yLCBhbiB3b3JrYXJvdW5kIGluIHNlbnNvcihvdjU2NDIuYyks IGlzIHRvIGltcGxlbWVudDoNCj4gPiBpbnQgKCp0cnlfZm10KShzdHJ1Y3QgdjRsMl9zdWJkZXYg KnNkLCBzdHJ1Y3QgdjRsMl9mb3JtYXQgKmZtdCk7DQo+ID4gdXNlIHRoZSBtZW1iZXIgKGZtdC0+ cGl4LT5waXhlbGZvcm1hdCA9PSBWNEwyX1BJWF9GTVRfSlBFRykgdG8gZmluZCBvdXQNCj4gPiBp ZiBpdCBpcyBqcGVnLiBBbmQgaW4gaG9zdCBkcml2ZXIsIGl0IGNhbGxzIHRyeV9mbXQoKSBpbnRv IHNlbnNvci4gSW4NCj4gPiB0aGlzIHdheSwgbm8gbmVlZCB0byBjaGFuZ2Ugc29jLWNhbWVyYSBj b21tb24gY29kZSwgYnV0IEkgZmVlbCB0aGF0IGl0DQo+ID4gZ29lcyBhZ2FpbnN0IHdpdGggeW91 ciB4eHhfbWJ1c194eHggZGVzaWduIHB1cnBvc2UsIHJpZ2h0Pw0KPiANCj4gSSBhY3R1YWxseSBw cmVmZXIgdGhpcyBvbmUsIGJ1dCB3aXRoIGFuIGFkZGl0aW9uIG9mIFY0TDJfTUJVU19GTVRfSlBF R18xWDgNCj4gYXMgcGVyIHlvdXIgYWRkaXRpb25hbCDDvGF0Y2gsIGJ1dCwgcGxlYXNlLCBhbHNv IGFkZCBhIG5ldyBwYWNraW5nLCBlLmcuLA0KPiBTT0NfTUJVU19QQUNLSU5HX0NPTVBSRVNTRUQg KG9yIFNPQ19NQlVTX1BBQ0tJTkdfVkFSSUFCTEU/KS4gU28sIHRoYXQgd2UNCj4gY2FuIGNsZWFu bHkgdHJhbnNsYXRlIGJldHdlZW4gVjRMMl9NQlVTX0ZNVF9KUEVHXzFYOCBhbmQNCj4gVjRMMl9Q SVhfRk1UX0pQRUcsIGJ1dCBob3N0IGRyaXZlcnMsIHRoYXQgd2FudCB0byBzdXBwb3J0IHRoaXMs IHdpbGwgaGF2ZQ0KPiB0byBrbm93IHRvIGNhbGN1bGF0ZSBmcmFtZSBzaXplcyBpbiBzb21lIHNw ZWNpYWwgd2F5LCBub3QganVzdCBhYm9ydGluZywNCj4gaWYgc29jX21idXNfYnl0ZXNfcGVyX2xp bmUoKSByZXR1cm5lZCBhbiBlcnJvci4gV2UgbWlnaHQgYWxzbyBjb25zaWRlcg0KPiByZXR1cm5p bmcgYSBkaWZmZXJlbnQgZXJyb3IgY29kZSBmb3IgdGhpcyBjYXNlLCBlLmcuLCB3ZSBjb3VsZCBj aGFuZ2UgdGhlDQo+IGdlbmVyYWwgZXJyb3IgY2FzZSB0byByZXR1cm4gLUVOT0VOVCwgYW5kIHVz ZSAtRUlOVkFMIGZvciBjYXNlcyBsaWtlIEpQRUcsDQo+IHdoZXJlIGRhdGEgaXMgdmFsaWQsIGJ1 dCBubyB2YWxpZCBjYWxjdWxhdGlvbiBpcyBwb3NzaWJsZS4NCj4gDQo+IFRoYW5rcw0KPiBHdWVu bmFkaQ0KPiANCj4gPiBXaGF0IGRvIHlvdSB0aGluaz8NCj4gPg0KPiA+IFBsZWFzZSBjaGVjayB0 aGUgYXR0YWNobWVudCwgaXQgaXMgb3VyIGhvc3QgY2FtZXJhIGNvbnRyb2xsZXIgZHJpdmVyIGFu ZCBzZW5zb3IuDQo+ID4NCj4gPiBUaGFua3MgYSBsb3QhDQo+ID4gLVFpbmcNCj4gPg0KPiA+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogR3Vlbm5hZGkgTGlha2hvdmV0c2tp IFttYWlsdG86Zy5saWFraG92ZXRza2lAZ214LmRlXQ0KPiA+IFNlbnQ6IDIwMTHDhMOqMcOUw4Ix OMOIw5UgMTozOQ0KPiA+IFRvOiBRaW5nIFh1DQo+ID4gQ2M6IExhdXJlbnQgUGluY2hhcnQ7IExp bnV4IE1lZGlhIE1haWxpbmcgTGlzdA0KPiA+IFN1YmplY3Q6IFJlOiBzb2MtY2FtZXJhIGpwZWcg c3VwcG9ydD8NCj4gPg0KPiA+IE9uIE1vbiwgMTcgSmFuIDIwMTEsIFFpbmcgWHUgd3JvdGU6DQo+ ID4NCj4gPiA+IEhpLA0KPiA+ID4NCj4gPiA+IE1hbnkgb2Ygb3VyIHNlbnNvcnMgc3VwcG9ydCBk aXJlY3RseSBvdXRwdXR0aW5nIEpQRUcgZGF0YSB0byBjYW1lcmENCj4gPiA+IGNvbnRyb2xsZXIs IGRvIHlvdSBmZWVsIGl0J3MgcmVhc29uYWJsZSB0byBhZGQganBlZyBzdXBwb3J0IGludG8NCj4g PiA+IHNvYy1jYW1lcmE/IEFzIGl0IHNlZW1zIHRoYXQgdGhlcmUgaXMgbm8gZGVmaW5lIGluIHY0 bDItbWVkaWFidXMuaCB3aGljaA0KPiA+ID4gaXMgc3VpdGFibGUgZm9yIG91ciBjYXNlLg0KPiA+ DQo+ID4gSW4gcHJpbmNpcGxlIEkgaGF2ZSBub3RoaW5nIGFnYWluc3QgdGhpcywgYnV0LCBJJ20g YWZyYWlkLCBpdCBpcyBub3QgcXVpdGUNCj4gPiB0aGF0IHNpbXBsZS4gSSBoYXZlbid0IHdvcmtl ZCB3aXRoIHN1Y2ggc2Vuc29ycyBteXNlbGYsIGJ1dCwgQUZBSVUsIHRoZQ0KPiA+IEpQRUcgaW1h Z2UgZm9ybWF0IGRvZXNuJ3QgaGF2ZSBmaXhlZCBieXRlcy1wZXItbGluZSBhbmQgYnl0ZXMtcGVy LWZyYW1lDQo+ID4gdmFsdWVzLiBJZiB5b3UgYWRkIGl0IGxpa2UgeW91IHByb3Bvc2UsIHRoaXMg d291bGQgbWVhbiwgdGhhdCBpdCBqdXN0DQo+ID4gZGVsaXZlcnMgIm5vcm1hbCIgOCBiaXRzIHBl ciBwaXhlbCBpbWFnZXMuIE9UT0gsIHNvY19tYnVzX2J5dGVzX3Blcl9saW5lKCkNCj4gPiB3b3Vs ZCBqdXN0IHJldHVybiAtRUlOVkFMIGZvciB5b3VyIEpQRUcgZm9ybWF0LCBzbywgdW5zdXBwb3J0 aW5nIGRyaXZlcnMNCj4gPiB3b3VsZCBqdXN0IGVycm9yIG91dCwgd2hpY2ggaXMgbm90IGFsbCB0 aGF0IGJhZC4gV2hlbiB0aGUgZmlyc3QgZHJpdmVyDQo+ID4gZGVjaWRlcyB0byBzdXBwb3J0IEpQ RUcsIHRoZXkgd2lsbCBoYXZlIHRvIGhhbmRsZSB0aGF0IGVycm9yLiBCdXQgbWF5YmUNCj4gPiB3 ZSdsbCB3YW50IHRvIHJldHVybiBhIHNwZWNpYWwgZXJyb3IgY29kZSBmb3IgaXQuDQo+ID4NCj4g PiBCdXQsIGluIGZhY3QsIHRoYXQgaXMgaW4gYSB3YXkgbXkgcHJvYmxlbSB3aXRoIHlvdXIgcGF0 Y2hlczogeW91IHByb3Bvc2UNCj4gPiBleHRlbnNpb25zIHRvIGdlbmVyaWMgY29kZSB3aXRob3V0 IHNob3dpbmcgaG93IHRoaXMgaXMgZ29pbmcgdG8gYmUgdXNlZCBpbg0KPiA+IHNwZWNpZmljIGRy aXZlcnMuIENvdWxkIHlvdSBzaG93IHVzIHlvdXIgaG9zdCBkcml2ZXIsIHBsZWFzZT8gSSBkb24n dA0KPiA+IHRoaW5rIHRoaXMgaXMgc3RpbGwgdGhlIHB4YTI3eCBkcml2ZXIsIGlzIGl0Pw0KPiA+ DQo+ID4gVGhhbmtzDQo+ID4gR3Vlbm5hZGkNCj4gPg0KPiA+ID4NCj4gPiA+IFN1Y2ggYXM6DQo+ ID4gPiAtLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NvY19tZWRpYWJ1cy5jDQo+ID4gPiArKysg Yi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NvY19tZWRpYWJ1cy5jDQo+ID4gPiBAQCAtMTMwLDYgKzEz MCwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19tYnVzX3BpeGVsZm10IG1idXNfZm10W10g PSB7DQo+ID4gPiAgICAgICAgICAgICAgICAgLnBhY2tpbmcgICAgICAgICAgICAgICAgPSBTT0Nf TUJVU19QQUNLSU5HXzJYOF9QQURMTywNCj4gPiA+ICAgICAgICAgICAgICAgICAub3JkZXIgICAg ICAgICAgICAgICAgICA9IFNPQ19NQlVTX09SREVSX0JFLA0KPiA+ID4gICAgICAgICB9LA0KPiA+ ID4gKyAgICAgICBbTUJVU19JRFgoSlBFR18xWDgpXSA9IHsNCj4gPiA+ICsgICAgICAgICAgICAg ICAuZm91cmNjICAgICAgICAgICAgICAgICA9IFY0TDJfUElYX0ZNVF9KUEVHLA0KPiA+ID4gKyAg ICAgICAgICAgICAgIC5uYW1lICAgICAgICAgICAgICAgICAgID0gIkpQRUciLA0KPiA+ID4gKyAg ICAgICAgICAgICAgIC5iaXRzX3Blcl9zYW1wbGUgICAgICAgID0gOCwNCj4gPiA+ICsgICAgICAg ICAgICAgICAucGFja2luZyAgICAgICAgICAgICAgICA9IFNPQ19NQlVTX1BBQ0tJTkdfTk9ORSwN Cj4gPiA+ICsgICAgICAgICAgICAgICAub3JkZXIgICAgICAgICAgICAgICAgICA9IFNPQ19NQlVT X09SREVSX0xFLA0KPiA+ID4gKyAgICAgICB9LA0KPiA+ID4gIH07DQo+ID4gPg0KPiA+ID4gLS0t IGEvaW5jbHVkZS9tZWRpYS92NGwyLW1lZGlhYnVzLmgNCj4gPiA+ICsrKyBiL2luY2x1ZGUvbWVk aWEvdjRsMi1tZWRpYWJ1cy5oDQo+ID4gPiBAQCAtNDEsNiArNDEsNyBAQCBlbnVtIHY0bDJfbWJ1 c19waXhlbGNvZGUgew0KPiA+ID4gICAgICAgICBWNEwyX01CVVNfRk1UX1NCR0dSMTBfMlg4X1BB REhJX0JFLA0KPiA+ID4gICAgICAgICBWNEwyX01CVVNfRk1UX1NCR0dSMTBfMlg4X1BBRExPX0JF LA0KPiA+ID4gICAgICAgICBWNEwyX01CVVNfRk1UX1NHUkJHOF8xWDgsDQo+ID4gPiArICAgICAg IFY0TDJfTUJVU19GTVRfSlBFR18xWDgsDQo+ID4gPiAgfTsNCj4gPiA+DQo+ID4gPiBBbnkgaWRl YXMgd2lsbCBiZSBhcHByZWNpYXRlZCENCj4gPiA+IFRoYW5rcyENCj4gPiA+IFFpbmcgWHUNCj4g PiA+DQo+ID4gPiBFbWFpbDogcWluZ3hAbWFydmVsbC5jb20NCj4gPiA+IEFwcGxpY2F0aW9uIFBy b2Nlc3NvciBTeXN0ZW1zIEVuZ2luZWVyaW5nLA0KPiA+ID4gTWFydmVsbCBUZWNobm9sb2d5IEdy b3VwIEx0ZC4NCj4gPiA+DQo+ID4NCj4gPiAtLS0NCj4gPiBHdWVubmFkaSBMaWFraG92ZXRza2ks IFBoLkQuDQo+ID4gRnJlZWxhbmNlIE9wZW4tU291cmNlIFNvZnR3YXJlIERldmVsb3Blcg0KPiA+ IGh0dHA6Ly93d3cub3Blbi10ZWNobm9sb2d5LmRlLw0KPiA+DQo+IA0KPiAtLS0NCj4gR3Vlbm5h ZGkgTGlha2hvdmV0c2tpLCBQaC5ELg0KPiBGcmVlbGFuY2UgT3Blbi1Tb3VyY2UgU29mdHdhcmUg RGV2ZWxvcGVyDQo+IGh0dHA6Ly93d3cub3Blbi10ZWNobm9sb2d5LmRlLw0KPiANCg0KLS0tDQpH dWVubmFkaSBMaWFraG92ZXRza2ksIFBoLkQuDQpGcmVlbGFuY2UgT3Blbi1Tb3VyY2UgU29mdHdh cmUgRGV2ZWxvcGVyDQpodHRwOi8vd3d3Lm9wZW4tdGVjaG5vbG9neS5kZS8NCi0tDQpUbyB1bnN1 YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgt bWVkaWEiIGluDQp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVs Lm9yZw0KTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpv cmRvbW8taW5mby5odG1sDQo=