From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Koenig, Christian" Subject: Re: [PATCH libdrm] amdgpu: add a faster BO list API Date: Wed, 16 Jan 2019 14:34:40 +0000 Message-ID: References: <20190107193104.4361-1-maraeo@gmail.com> <74054b1e-5211-3bfc-ab0f-27e8604759d1@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2057430871==" Return-path: In-Reply-To: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?utf-8?B?TWFyZWsgT2zFocOhaw==?= Cc: amd-gfx mailing list , Bas Nieuwenhuizen --===============2057430871== Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_a550562a7d369acf3143217c507e667aamdcom_" --_000_a550562a7d369acf3143217c507e667aamdcom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QW0gMTYuMDEuMTkgdW0gMTU6MzEgc2NocmllYiBNYXJlayBPbMWhw6FrOg0KDQoNCk9uIFdlZCwg SmFuIDE2LCAyMDE5LCA3OjU1IEFNIENocmlzdGlhbiBLw7ZuaWcgPGNrb2VuaWcubGVpY2h0enVt ZXJrZW5AZ21haWwuY29tPG1haWx0bzpja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT4g d3JvdGU6DQpXZWxsIGlmIHlvdSBhc2sgbWUgd2Ugc2hvdWxkIGhhdmUgdGhlIGZvbGxvd2luZyBp bnRlcmZhY2UgZm9yDQpuZWdvdGlhdGluZyBtZW1vcnkgbWFuYWdlbWVudCB3aXRoIHRoZSBrZXJu ZWw6DQoNCjEuIFdlIGhhdmUgcGVyIHByb2Nlc3MgQk9zIHdoaWNoIGNhbid0IGJlIHNoYXJlZCBi ZXR3ZWVuIHByb2Nlc3Nlcy4NCg0KVGhvc2UgYXJlIGFsd2F5cyB2YWxpZCBhbmQgZG9uJ3QgbmVl ZCB0byBiZSBtZW50aW9uZWQgaW4gYW55IEJPIGxpc3QNCndoYXRzb2V2ZXIuDQoNCklmIHdlIGtu ZXcgdGhhdCBhIHBlciBwcm9jZXNzIEJPIGlzIGN1cnJlbnRseSBub3QgaW4gdXNlIHdlIGNhbg0K b3B0aW9uYWxseSB0ZWxsIHRoYXQgdG8gdGhlIGtlcm5lbCB0byBtYWtlIG1lbW9yeSBtYW5hZ2Vt ZW50IG1vcmUgZWZmaWNpZW50Lg0KDQpJbiBvdGhlciB3b3JkcyBpbnN0ZWFkIG9mIGEgbGlzdCBv ZiBzdHVmZiB3aGljaCBpcyB1c2VkIHdlIHNlbmQgZG93biB0bw0KdGhlIGtlcm5lbCBhIGxpc3Qg b2Ygc3R1ZmYgd2hpY2ggaXMgbm90IHVzZWQgYW55IG1vcmUgYW5kIHRoYXQgb25seSB3aGVuDQp3 ZSBrbm93IHRoYXQgaXQgaXMgbmVjZXNzYXJ5LCBlLmcuIHdoZW4gYSBnYW1lIG9yIGFwcGxpY2F0 aW9uIG92ZXJjb21taXRzLg0KDQpSYWRlb25zaSBkb2Vzbid0IHVzZSB0aGlzIGJlY2F1c2UgdGhp cyBhcHByb2FjaCBjYXVzZWQgcGVyZm9ybWFuY2UgZGVncmFkYXRpb24gYW5kIGFsc28gZHJvcHMg Qk8gcHJpb3JpdGllcy4NCg0KVGhlIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uIHdoZXJlIG1vc3Rs eSBzaG9ydGNvbWluZ3Mgd2l0aCB0aGUgTFJVIHdoaWNoIGJ5IG5vdyBoYXZlIGJlZW4gZml4ZWQu DQoNCkJPIHByaW9yaXRpZXMgYXJlIGEgZGlmZmVyZW50IHRvcGljLCBidXQgY291bGQgYmUgYWRk ZWQgdG8gcGVyIFZNIEJPcyBhcyB3ZWxsLg0KDQpDaHJpc3RpYW4uDQoNCg0KTWFyZWsNCg0KDQoy LiBXZSBoYXZlIHNoYXJlZCBCT3Mgd2hpY2ggYXJlIHVzZWQgYnkgbW9yZSB0aGFuIG9uZSBwcm9j ZXNzLg0KDQpUaG9zZSBhcmUgcmFyZSBhbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBwZXIgQ1Mg bGlzdCBvZiBCT3MgaW4gdXNlLg0KDQoNClRoZSB3aG9sZSBCTyBsaXN0IGludGVyZmFjZSBNYXJl ayB0cmllcyB0byBvcHRpbWl6ZSBoZXJlIHNob3VsZCBiZQ0KZGVwcmVjYXRlZCBhbmQgbm90IHVz ZWQgYW55IG1vcmUuDQoNClJlZ2FyZHMsDQpDaHJpc3RpYW4uDQoNCkFtIDE2LjAxLjE5IHVtIDEz OjQ2IHNjaHJpZWIgQmFzIE5pZXV3ZW5odWl6ZW46DQo+IFNvIHJhbmRvbSBxdWVzdGlvbnM6DQo+ DQo+IDEpIEluIHRoaXMgZGlzY3Vzc2lvbiBpdCB3YXMgbWVudGlvbmVkIHRoYXQgc29tZSBWdWxr YW4gZHJpdmVycyBzdGlsbA0KPiB1c2UgdGhlIGJvX2xpc3QgaW50ZXJmYWNlLiBJIHRoaW5rIHRo YXQgaW1wbGllcyByYWR2IGFzIEkgdGhpbmsgd2UncmUNCj4gc3RpbGwgdXNpbmcgYm9fbGlzdC4g SXMgdGhlcmUgYW55IG90aGVyIEFQSSB3ZSBzaG91bGQgYmUgdXNpbmc/IChBbHNvLA0KPiB3aXRo IFZLX0VYVF9kZXNjcmlwdG9yX2luZGV4aW5nIEkgc3VzcGVjdCB3ZSdsbCBiZSBtb3ZpbmcgbW9y ZSB0b3dhcmRzDQo+IGEgZ2xvYmFsIGJvIGxpc3QgaW5zdGVhZCBvZiBhIGNtZCBidWZmZXIgb25l LCBhcyB3ZSBjYW5ub3Qga25vdyBhbGwNCj4gdGhlIEJPcyByZWZlcmVuY2VkIGFueW1vcmUsIGJ1 dCBub3Qgc3VyZSB3aGF0IGVuZCBzdGF0ZSBoZXJlIHdpbGwgYmUpLg0KPg0KPiAyKSBUaGUgb3Ro ZXIgYWx0ZXJuYXRpdmUgbWVudGlvbmVkIHdhcyBhZGRpbmcgdGhlIGJ1ZmZlcnMgZGlyZWN0bHkN Cj4gaW50byB0aGUgc3VibWl0IGlvY3RsLiBJcyB0aGlzIHRoZSBkZXNpcmVkIGVuZCBzdGF0ZSAo dGhvdWdoIGFzIGFib3ZlDQo+IEknbSBub3Qgc3VyZSBob3cgdGhhdCB3b3JrcyBmb3IgdnVsa2Fu KT8gSWYgeWVzLCB3aGF0IGlzIHRoZSB0aW1lbGluZQ0KPiBmb3IgdGhpcyB0aGF0IHdlIG5lZWQg c29tZXRoaW5nIGluIHRoZSBpbnRlcmltPw0KPg0KPiAzKSBEaWQgd2UgbWVhc3VyZSBhbnkgcGVy Zm9ybWFuY2UgYmVuZWZpdD8NCj4NCj4gSW4gZ2VuZXJhbCBJJ2QgbGlrZSB0byB0byBhY2sgdGhl IHJhdyBibyBsaXN0IGNyZWF0aW9uIGZ1bmN0aW9uIGFzDQo+IHRoaXMgaW50ZXJmYWNlIHNlZW1z IGVhc2llciB0byB1c2UuIFRoZSB0d28gYXJyYXlzIHRoaW5nIGhhcyBhbHdheXMNCj4gYmVlbiBr aW5kIG9mIGEgcGFpbiB3aGVuIHdlIHdhbnQgdG8gdXNlIGUuZy4gYnVpbHRpbiBzb3J0IGZ1bmN0 aW9ucyB0bw0KPiBtYWtlIHN1cmUgd2UgaGF2ZSBubyBkdXBsaWNhdGUgQk9zLCBidXQgaGF2ZSBz b21lIGNvbW1lbnRzIGJlbG93Lg0KPg0KPiBPbiBNb24sIEphbiA3LCAyMDE5IGF0IDg6MzEgUE0g TWFyZWsgT2zFocOhayA8bWFyYWVvQGdtYWlsLmNvbTxtYWlsdG86bWFyYWVvQGdtYWlsLmNvbT4+ IHdyb3RlOg0KPj4gRnJvbTogTWFyZWsgT2zFocOhayA8bWFyZWsub2xzYWtAYW1kLmNvbTxtYWls dG86bWFyZWsub2xzYWtAYW1kLmNvbT4+DQo+Pg0KPj4gLS0tDQo+PiAgIGFtZGdwdS9hbWRncHUt c3ltYm9sLWNoZWNrIHwgIDMgKysNCj4+ICAgYW1kZ3B1L2FtZGdwdS5oICAgICAgICAgICAgfCA1 NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPj4gICBhbWRncHUvYW1k Z3B1X2JvLmMgICAgICAgICB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKw0KPj4gICBhbWRn cHUvYW1kZ3B1X2NzLmMgICAgICAgICB8IDI1ICsrKysrKysrKysrKysrKysrDQo+PiAgIDQgZmls ZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4+DQo+PiBkaWZm IC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdS1zeW1ib2wtY2hlY2sgYi9hbWRncHUvYW1kZ3B1LXN5bWJv bC1jaGVjaw0KPj4gaW5kZXggNmY1ZTBmOTUuLjk2YTQ0YjQwIDEwMDc1NQ0KPj4gLS0tIGEvYW1k Z3B1L2FtZGdwdS1zeW1ib2wtY2hlY2sNCj4+ICsrKyBiL2FtZGdwdS9hbWRncHUtc3ltYm9sLWNo ZWNrDQo+PiBAQCAtMTIsMjAgKzEyLDIyIEBAIF9lZGF0YQ0KPj4gICBfZW5kDQo+PiAgIF9maW5p DQo+PiAgIF9pbml0DQo+PiAgIGFtZGdwdV9ib19hbGxvYw0KPj4gICBhbWRncHVfYm9fY3B1X21h cA0KPj4gICBhbWRncHVfYm9fY3B1X3VubWFwDQo+PiAgIGFtZGdwdV9ib19leHBvcnQNCj4+ICAg YW1kZ3B1X2JvX2ZyZWUNCj4+ICAgYW1kZ3B1X2JvX2ltcG9ydA0KPj4gICBhbWRncHVfYm9faW5j X3JlZg0KPj4gK2FtZGdwdV9ib19saXN0X2NyZWF0ZV9yYXcNCj4+ICthbWRncHVfYm9fbGlzdF9k ZXN0cm95X3Jhdw0KPj4gICBhbWRncHVfYm9fbGlzdF9jcmVhdGUNCj4+ICAgYW1kZ3B1X2JvX2xp c3RfZGVzdHJveQ0KPj4gICBhbWRncHVfYm9fbGlzdF91cGRhdGUNCj4+ICAgYW1kZ3B1X2JvX3F1 ZXJ5X2luZm8NCj4+ICAgYW1kZ3B1X2JvX3NldF9tZXRhZGF0YQ0KPj4gICBhbWRncHVfYm9fdmFf b3ANCj4+ICAgYW1kZ3B1X2JvX3ZhX29wX3Jhdw0KPj4gICBhbWRncHVfYm9fd2FpdF9mb3JfaWRs ZQ0KPj4gICBhbWRncHVfY3JlYXRlX2JvX2Zyb21fdXNlcl9tZW0NCj4+ICAgYW1kZ3B1X2NzX2No dW5rX2ZlbmNlX2luZm9fdG9fZGF0YQ0KPj4gQEAgLTQwLDIwICs0MiwyMSBAQCBhbWRncHVfY3Nf ZGVzdHJveV9zZW1hcGhvcmUNCj4+ICAgYW1kZ3B1X2NzX2Rlc3Ryb3lfc3luY29iag0KPj4gICBh bWRncHVfY3NfZXhwb3J0X3N5bmNvYmoNCj4+ICAgYW1kZ3B1X2NzX2ZlbmNlX3RvX2hhbmRsZQ0K Pj4gICBhbWRncHVfY3NfaW1wb3J0X3N5bmNvYmoNCj4+ICAgYW1kZ3B1X2NzX3F1ZXJ5X2ZlbmNl X3N0YXR1cw0KPj4gICBhbWRncHVfY3NfcXVlcnlfcmVzZXRfc3RhdGUNCj4+ICAgYW1kZ3B1X3F1 ZXJ5X3N3X2luZm8NCj4+ICAgYW1kZ3B1X2NzX3NpZ25hbF9zZW1hcGhvcmUNCj4+ICAgYW1kZ3B1 X2NzX3N1Ym1pdA0KPj4gICBhbWRncHVfY3Nfc3VibWl0X3Jhdw0KPj4gK2FtZGdwdV9jc19zdWJt aXRfcmF3Mg0KPj4gICBhbWRncHVfY3Nfc3luY29ial9leHBvcnRfc3luY19maWxlDQo+PiAgIGFt ZGdwdV9jc19zeW5jb2JqX2ltcG9ydF9zeW5jX2ZpbGUNCj4+ICAgYW1kZ3B1X2NzX3N5bmNvYmpf cmVzZXQNCj4+ICAgYW1kZ3B1X2NzX3N5bmNvYmpfc2lnbmFsDQo+PiAgIGFtZGdwdV9jc19zeW5j b2JqX3dhaXQNCj4+ICAgYW1kZ3B1X2NzX3dhaXRfZmVuY2VzDQo+PiAgIGFtZGdwdV9jc193YWl0 X3NlbWFwaG9yZQ0KPj4gICBhbWRncHVfZGV2aWNlX2RlaW5pdGlhbGl6ZQ0KPj4gICBhbWRncHVf ZGV2aWNlX2luaXRpYWxpemUNCj4+ICAgYW1kZ3B1X2ZpbmRfYm9fYnlfY3B1X21hcHBpbmcNCj4+ IGRpZmYgLS1naXQgYS9hbWRncHUvYW1kZ3B1LmggYi9hbWRncHUvYW1kZ3B1LmgNCj4+IGluZGV4 IGRjNTE2NTlhLi41YjgwMDAzMyAxMDA2NDQNCj4+IC0tLSBhL2FtZGdwdS9hbWRncHUuaA0KPj4g KysrIGIvYW1kZ3B1L2FtZGdwdS5oDQo+PiBAQCAtMzUsMjAgKzM1LDIxIEBADQo+PiAgICNkZWZp bmUgX0FNREdQVV9IXw0KPj4NCj4+ICAgI2luY2x1ZGUgPHN0ZGludC5oPg0KPj4gICAjaW5jbHVk ZSA8c3RkYm9vbC5oPg0KPj4NCj4+ICAgI2lmZGVmIF9fY3BsdXNwbHVzDQo+PiAgIGV4dGVybiAi QyIgew0KPj4gICAjZW5kaWYNCj4+DQo+PiAgIHN0cnVjdCBkcm1fYW1kZ3B1X2luZm9faHdfaXA7 DQo+PiArc3RydWN0IGRybV9hbWRncHVfYm9fbGlzdF9lbnRyeTsNCj4+DQo+PiAgIC8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0qLw0KPj4gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGVmaW5l cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCj4+ICAgLyotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSovDQo+Pg0KPj4gICAvKioNCj4+ICAgICogRGVmaW5lIG1heC4gbnVtYmVyIG9m IENvbW1hbmQgQnVmZmVycyAoSUIpIHdoaWNoIGNvdWxkIGJlIHNlbnQgdG8gdGhlIHNpbmdsZQ0K Pj4gICAgKiBoYXJkd2FyZSBJUCB0byBhY2NvbW1vZGF0ZSBDRS9ERSByZXF1aXJlbWVudHMNCj4+ ICAgICoNCj4+ICAgICogXHNhIGFtZGdwdV9jc19pYl9pbmZvDQo+PiBAQCAtNzY3LDM0ICs3Njgs NjUgQEAgaW50IGFtZGdwdV9ib19jcHVfdW5tYXAoYW1kZ3B1X2JvX2hhbmRsZSBidWZfaGFuZGxl KTsNCj4+ICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG5vIEdQVSBhY2Nlc3Mg aXMgc2NoZWR1bGVkLg0KPj4gICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgMSBHUFUgYWNj ZXNzIGlzIGluIGZseSBvciBzY2hlZHVsZWQNCj4+ICAgICoNCj4+ICAgICogXHJldHVybiAgIDAg LSBvbiBzdWNjZXNzDQo+PiAgICAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUgUE9TSVggRXJyb3Ig Y29kZQ0KPj4gICAgKi8NCj4+ICAgaW50IGFtZGdwdV9ib193YWl0X2Zvcl9pZGxlKGFtZGdwdV9i b19oYW5kbGUgYnVmX2hhbmRsZSwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDY0X3QgdGltZW91dF9ucywNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAq YnVmZmVyX2J1c3kpOw0KPj4NCj4+ICsvKioNCj4+ICsgKiBDcmVhdGVzIGEgQk8gbGlzdCBoYW5k bGUgZm9yIGNvbW1hbmQgc3VibWlzc2lvbi4NCj4+ICsgKg0KPj4gKyAqIFxwYXJhbSAgIGRldiAg ICAgICAgICAgICAgICAgICAgICAgIC0gXGMgW2luXSBEZXZpY2UgaGFuZGxlLg0KPj4gKyAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWUgI2FtZGdwdV9kZXZpY2VfaW5pdGlhbGl6 ZSgpDQo+PiArICogXHBhcmFtICAgbnVtYmVyX29mX2J1ZmZlcnMgIC0gXGMgW2luXSBOdW1iZXIg b2YgQk9zIGluIHRoZSBsaXN0DQo+PiArICogXHBhcmFtICAgYnVmZmVycyAgICAgICAgICAgIC0g XGMgW2luXSBMaXN0IG9mIEJPIGhhbmRsZXMNCj4+ICsgKiBccGFyYW0gICByZXN1bHQgICAgICAg ICAgICAgLSBcYyBbb3V0XSBDcmVhdGVkIEJPIGxpc3QgaGFuZGxlDQo+PiArICoNCj4+ICsgKiBc cmV0dXJuICAgMCBvbiBzdWNjZXNzXG4NCj4+ICsgKiAgICAgICAgICA8MCAtIE5lZ2F0aXZlIFBP U0lYIEVycm9yIGNvZGUNCj4+ICsgKg0KPj4gKyAqIFxzYSBhbWRncHVfYm9fbGlzdF9kZXN0cm95 X3JhdygpDQo+PiArKi8NCj4+ICtpbnQgYW1kZ3B1X2JvX2xpc3RfY3JlYXRlX3JhdyhhbWRncHVf ZGV2aWNlX2hhbmRsZSBkZXYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCBudW1iZXJfb2ZfYnVmZmVycywNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBkcm1fYW1kZ3B1X2JvX2xpc3RfZW50cnkgKmJ1ZmZlcnMsDQo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqcmVzdWx0KTsNCj4gU28gQUZBSVUgIGRybV9h bWRncHVfYm9fbGlzdF9lbnRyeSB0YWtlcyBhIHJhdyBibyBoYW5kbGUgd2hpbGUgd2UNCj4gbmV2 ZXIgZ2V0IGEgcmF3IGJvIGhhbmRsZSBmcm9tIGxpYmRybV9hbWRncHUuIEhvdyBhcmUgd2Ugc3Vw cG9zZWQgdG8NCj4gZmlsbCBpdCBpbj8NCj4NCj4gV2hhdCBkbyB3ZSB3aW4gYnkgaGF2aW5nIHRo ZSByYXcgaGFuZGxlIGZvciB0aGUgYm9fbGlzdD8gSWYgd2Ugd291bGQNCj4gbm90IHJldHVybiB0 aGUgcmF3IGhhbmRsZSB3ZSB3b3VsZCBub3QgbmVlZCB0aGUgc3VibWl0X3JhdzIuDQo+DQo+PiAr DQo+PiArLyoqDQo+PiArICogRGVzdHJveXMgYSBCTyBsaXN0IGhhbmRsZS4NCj4+ICsgKg0KPj4g KyAqIFxwYXJhbSAgIGJvX2xpc3QgICAgLSBcYyBbaW5dIEJPIGxpc3QgaGFuZGxlLg0KPj4gKyAq DQo+PiArICogXHJldHVybiAgIDAgb24gc3VjY2Vzc1xuDQo+PiArICogICAgICAgICAgPDAgLSBO ZWdhdGl2ZSBQT1NJWCBFcnJvciBjb2RlDQo+PiArICoNCj4+ICsgKiBcc2EgYW1kZ3B1X2JvX2xp c3RfY3JlYXRlX3JhdygpLCBhbWRncHVfY3Nfc3VibWl0X3JhdzIoKQ0KPj4gKyovDQo+PiAraW50 IGFtZGdwdV9ib19saXN0X2Rlc3Ryb3lfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwgdWlu dDMyX3QgYm9fbGlzdCk7DQo+PiArDQo+PiAgIC8qKg0KPj4gICAgKiBDcmVhdGVzIGEgQk8gbGlz dCBoYW5kbGUgZm9yIGNvbW1hbmQgc3VibWlzc2lvbi4NCj4+ICAgICoNCj4+ICAgICogXHBhcmFt ICAgZGV2ICAgICAgICAgICAgICAgICAgICAgICAgLSBcYyBbaW5dIERldmljZSBoYW5kbGUuDQo+ PiAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWUgI2FtZGdwdV9kZXZpY2Vf aW5pdGlhbGl6ZSgpDQo+PiAgICAqIFxwYXJhbSAgIG51bWJlcl9vZl9yZXNvdXJjZXMgICAgICAg IC0gXGMgW2luXSBOdW1iZXIgb2YgQk9zIGluIHRoZSBsaXN0DQo+PiAgICAqIFxwYXJhbSAgIHJl c291cmNlcyAgICAgICAgICAtIFxjIFtpbl0gTGlzdCBvZiBCTyBoYW5kbGVzDQo+PiAgICAqIFxw YXJhbSAgIHJlc291cmNlX3ByaW9zICAgICAtIFxjIFtpbl0gT3B0aW9uYWwgcHJpb3JpdHkgZm9y IGVhY2ggaGFuZGxlDQo+PiAgICAqIFxwYXJhbSAgIHJlc3VsdCAgICAgICAgICAgICAtIFxjIFtv dXRdIENyZWF0ZWQgQk8gbGlzdCBoYW5kbGUNCj4+ICAgICoNCj4+ICAgICogXHJldHVybiAgIDAg b24gc3VjY2Vzc1xuDQo+PiAgICAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUgUE9TSVggRXJyb3Ig Y29kZQ0KPj4gICAgKg0KPj4gLSAqIFxzYSBhbWRncHVfYm9fbGlzdF9kZXN0cm95KCkNCj4+ICsg KiBcc2EgYW1kZ3B1X2JvX2xpc3RfZGVzdHJveSgpLCBhbWRncHVfY3Nfc3VibWl0X3JhdzIoKQ0K Pj4gICAqLw0KPj4gICBpbnQgYW1kZ3B1X2JvX2xpc3RfY3JlYXRlKGFtZGdwdV9kZXZpY2VfaGFu ZGxlIGRldiwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG51bWJlcl9v Zl9yZXNvdXJjZXMsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfYm9faGFu ZGxlICpyZXNvdXJjZXMsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpy ZXNvdXJjZV9wcmlvcywNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV9ib19s aXN0X2hhbmRsZSAqcmVzdWx0KTsNCj4+DQo+PiAgIC8qKg0KPj4gICAgKiBEZXN0cm95cyBhIEJP IGxpc3QgaGFuZGxlLg0KPj4gICAgKg0KPj4gQEAgLTE1ODAsMjAgKzE2MTIsNDIgQEAgc3RydWN0 IGRybV9hbWRncHVfY3NfY2h1bms7DQo+PiAgIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX2Rl cDsNCj4+ICAgc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfZGF0YTsNCj4+DQo+PiAgIGludCBh bWRncHVfY3Nfc3VibWl0X3JhdyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsDQo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0LA0KPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfYm9fbGlzdF9oYW5kbGUgYm9fbGlzdF9oYW5k bGUsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1fY2h1bmtzLA0KPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVuayAqY2h1bmtz LA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqc2VxX25vKTsNCj4+DQo+ PiArLyoqDQo+PiArICogU3VibWl0IHJhdyBjb21tYW5kIHN1Ym1pc3Npb24gdG8gdGhlIGtlcm5l bCB3aXRoIGEgcmF3IEJPIGxpc3QgaGFuZGxlLg0KPj4gKyAqDQo+PiArICogXHBhcmFtICAgZGV2 ICAgICAgICAgICAgICAgLSBcYyBbaW5dIGRldmljZSBoYW5kbGUNCj4+ICsgKiBccGFyYW0gICBj b250ZXh0ICAgIC0gXGMgW2luXSBjb250ZXh0IGhhbmRsZSBmb3IgY29udGV4dCBpZA0KPj4gKyAq IFxwYXJhbSAgIGJvX2xpc3RfaGFuZGxlIC0gXGMgW2luXSByYXcgYm8gbGlzdCBoYW5kbGUgKDAg Zm9yIG5vbmUpDQo+PiArICogXHBhcmFtICAgbnVtX2NodW5rcyAtIFxjIFtpbl0gbnVtYmVyIG9m IENTIGNodW5rcyB0byBzdWJtaXQNCj4+ICsgKiBccGFyYW0gICBjaHVua3MgICAgIC0gXGMgW2lu XSBhcnJheSBvZiBDUyBjaHVua3MNCj4+ICsgKiBccGFyYW0gICBzZXFfbm8gICAgIC0gXGMgW291 dF0gb3V0cHV0IHNlcXVlbmNlIG51bWJlciBmb3Igc3VibWlzc2lvbi4NCj4+ICsgKg0KPj4gKyAq IFxyZXR1cm4gICAwIG9uIHN1Y2Nlc3Ncbg0KPj4gKyAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUg UE9TSVggRXJyb3IgY29kZQ0KPj4gKyAqDQo+PiArICogXHNhIGFtZGdwdV9ib19saXN0X2NyZWF0 ZV9yYXcoKSwgYW1kZ3B1X2JvX2xpc3RfZGVzdHJveV9yYXcoKQ0KPj4gKyAqLw0KPj4gK2ludCBh bWRncHVfY3Nfc3VibWl0X3JhdzIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LA0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICBhbWRncHVfY29udGV4dF9oYW5kbGUgY29udGV4dCwNCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgYm9fbGlzdF9oYW5kbGUsDQo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBudW1fY2h1bmtzLA0KPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVuayAqY2h1bmtzLA0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqc2VxX25vKTsNCj4+ICsNCj4+ICAgdm9pZCBh bWRncHVfY3NfY2h1bmtfZmVuY2VfdG9fZGVwKHN0cnVjdCBhbWRncHVfY3NfZmVuY2UgKmZlbmNl LA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2FtZGdw dV9jc19jaHVua19kZXAgKmRlcCk7DQo+PiAgIHZvaWQgYW1kZ3B1X2NzX2NodW5rX2ZlbmNlX2lu Zm9fdG9fZGF0YShzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNlX2luZm8gKmZlbmNlX2luZm8sDQo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1 X2NzX2NodW5rX2RhdGEgKmRhdGEpOw0KPj4NCj4+ICAgLyoqDQo+PiAgICAqIFJlc2VydmUgVk1J RA0KPj4gICAgKiBccGFyYW0gICBjb250ZXh0IC0gXGMgW2luXSAgR1BVIENvbnRleHQNCj4+ICAg ICogXHBhcmFtICAgZmxhZ3MgLSBcYyBbaW5dICBUQkQNCj4+ICAgICoNCj4+IGRpZmYgLS1naXQg YS9hbWRncHUvYW1kZ3B1X2JvLmMgYi9hbWRncHUvYW1kZ3B1X2JvLmMNCj4+IGluZGV4IGMwZjQy ZTgxLi4yMWJjNzNhYSAxMDA2NDQNCj4+IC0tLSBhL2FtZGdwdS9hbWRncHVfYm8uYw0KPj4gKysr IGIvYW1kZ3B1L2FtZGdwdV9iby5jDQo+PiBAQCAtNjExLDIwICs2MTEsNTYgQEAgZHJtX3B1Ymxp YyBpbnQgYW1kZ3B1X2NyZWF0ZV9ib19mcm9tX3VzZXJfbWVtKGFtZGdwdV9kZXZpY2VfaGFuZGxl IGRldiwNCj4+ICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmZGV2LT5ib190YWJsZV9tdXRl eCk7DQo+PiAgICAgICAgICByID0gaGFuZGxlX3RhYmxlX2luc2VydCgmZGV2LT5ib19oYW5kbGVz LCAoKmJ1Zl9oYW5kbGUpLT5oYW5kbGUsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqYnVmX2hhbmRsZSk7DQo+PiAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmZGV2 LT5ib190YWJsZV9tdXRleCk7DQo+PiAgICAgICAgICBpZiAocikNCj4+ICAgICAgICAgICAgICAg ICAgYW1kZ3B1X2JvX2ZyZWUoKmJ1Zl9oYW5kbGUpOw0KPj4gICBvdXQ6DQo+PiAgICAgICAgICBy ZXR1cm4gcjsNCj4+ICAgfQ0KPj4NCj4+ICtkcm1fcHVibGljIGludCBhbWRncHVfYm9fbGlzdF9j cmVhdGVfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwNCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbnVtYmVyX29mX2J1ZmZlcnMsDQo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1 X2JvX2xpc3RfZW50cnkgKmJ1ZmZlcnMsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90ICpyZXN1bHQpDQo+PiArew0KPj4gKyAgICAgICB1bmlvbiBk cm1fYW1kZ3B1X2JvX2xpc3QgYXJnczsNCj4+ICsgICAgICAgaW50IHI7DQo+PiArDQo+PiArICAg ICAgIG1lbXNldCgmYXJncywgMCwgc2l6ZW9mKGFyZ3MpKTsNCj4+ICsgICAgICAgYXJncy5pbi5v cGVyYXRpb24gPSBBTURHUFVfQk9fTElTVF9PUF9DUkVBVEU7DQo+PiArICAgICAgIGFyZ3MuaW4u Ym9fbnVtYmVyID0gbnVtYmVyX29mX2J1ZmZlcnM7DQo+PiArICAgICAgIGFyZ3MuaW4uYm9faW5m b19zaXplID0gc2l6ZW9mKHN0cnVjdCBkcm1fYW1kZ3B1X2JvX2xpc3RfZW50cnkpOw0KPj4gKyAg ICAgICBhcmdzLmluLmJvX2luZm9fcHRyID0gKHVpbnQ2NF90KSh1aW50cHRyX3QpYnVmZmVyczsN Cj4+ICsNCj4+ICsgICAgICAgciA9IGRybUNvbW1hbmRXcml0ZVJlYWQoZGV2LT5mZCwgRFJNX0FN REdQVV9CT19MSVNULA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJncywg c2l6ZW9mKGFyZ3MpKTsNCj4+ICsgICAgICAgaWYgKHIpDQo+PiArICAgICAgICAgICAgICAgcmV0 dXJuIHI7DQo+PiArDQo+PiArICAgICAgICpyZXN1bHQgPSBhcmdzLm91dC5saXN0X2hhbmRsZTsN Cj4+ICsgICAgICAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4gK2RybV9wdWJsaWMgaW50IGFt ZGdwdV9ib19saXN0X2Rlc3Ryb3lfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwNCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGJvX2xpc3Qp DQo+PiArew0KPj4gKyAgICAgICB1bmlvbiBkcm1fYW1kZ3B1X2JvX2xpc3QgYXJnczsNCj4+ICsN Cj4+ICsgICAgICAgbWVtc2V0KCZhcmdzLCAwLCBzaXplb2YoYXJncykpOw0KPj4gKyAgICAgICBh cmdzLmluLm9wZXJhdGlvbiA9IEFNREdQVV9CT19MSVNUX09QX0RFU1RST1k7DQo+PiArICAgICAg IGFyZ3MuaW4ubGlzdF9oYW5kbGUgPSBib19saXN0Ow0KPj4gKw0KPj4gKyAgICAgICByZXR1cm4g ZHJtQ29tbWFuZFdyaXRlUmVhZChkZXYtPmZkLCBEUk1fQU1ER1BVX0JPX0xJU1QsDQo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcmdzLCBzaXplb2YoYXJncykpOw0KPj4g K30NCj4+ICsNCj4+ICAgZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2JvX2xpc3RfY3JlYXRlKGFtZGdw dV9kZXZpY2VfaGFuZGxlIGRldiwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDMyX3QgbnVtYmVyX29mX3Jlc291cmNlcywNCj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2JvX2hhbmRsZSAqcmVzb3VyY2VzLA0KPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpyZXNvdXJjZV9wcmlv cywNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2JvX2xp c3RfaGFuZGxlICpyZXN1bHQpDQo+PiAgIHsNCj4+ICAgICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1 X2JvX2xpc3RfZW50cnkgKmxpc3Q7DQo+PiAgICAgICAgICB1bmlvbiBkcm1fYW1kZ3B1X2JvX2xp c3QgYXJnczsNCj4+ICAgICAgICAgIHVuc2lnbmVkIGk7DQo+PiAgICAgICAgICBpbnQgcjsNCj4+ IGRpZmYgLS1naXQgYS9hbWRncHUvYW1kZ3B1X2NzLmMgYi9hbWRncHUvYW1kZ3B1X2NzLmMNCj4+ IGluZGV4IDNiODIzMWFhLi41YmVkZjc0OCAxMDA2NDQNCj4+IC0tLSBhL2FtZGdwdS9hbWRncHVf Y3MuYw0KPj4gKysrIGIvYW1kZ3B1L2FtZGdwdV9jcy5jDQo+PiBAQCAtNzI0LDIwICs3MjQsNDUg QEAgZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdF9yYXcoYW1kZ3B1X2RldmljZV9oYW5k bGUgZGV2LA0KPj4gICAgICAgICAgciA9IGRybUNvbW1hbmRXcml0ZVJlYWQoZGV2LT5mZCwgRFJN X0FNREdQVV9DUywNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjcywgc2l6 ZW9mKGNzKSk7DQo+PiAgICAgICAgICBpZiAocikNCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJu IHI7DQo+Pg0KPj4gICAgICAgICAgaWYgKHNlcV9ubykNCj4+ICAgICAgICAgICAgICAgICAgKnNl cV9ubyA9IGNzLm91dC5oYW5kbGU7DQo+PiAgICAgICAgICByZXR1cm4gMDsNCj4+ICAgfQ0KPj4N Cj4+ICtkcm1fcHVibGljIGludCBhbWRncHVfY3Nfc3VibWl0X3JhdzIoYW1kZ3B1X2RldmljZV9o YW5kbGUgZGV2LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtZGdw dV9jb250ZXh0X2hhbmRsZSBjb250ZXh0LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IGJvX2xpc3RfaGFuZGxlLA0KPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBudW1fY2h1bmtzLA0KPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rICpjaHVua3MsDQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgKnNlcV9ubykN Cj4+ICt7DQo+PiArICAgICAgIHVuaW9uIGRybV9hbWRncHVfY3MgY3MgPSB7MH07DQo+PiArICAg ICAgIHVpbnQ2NF90ICpjaHVua19hcnJheTsNCj4+ICsgICAgICAgaW50IGksIHI7DQo+PiArDQo+ PiArICAgICAgIGNodW5rX2FycmF5ID0gYWxsb2NhKHNpemVvZih1aW50NjRfdCkgKiBudW1fY2h1 bmtzKTsNCj4+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV9jaHVua3M7IGkrKykNCj4+ICsg ICAgICAgICAgICAgICBjaHVua19hcnJheVtpXSA9ICh1aW50NjRfdCkodWludHB0cl90KSZjaHVu a3NbaV07DQo+PiArICAgICAgIGNzLmluLmNodW5rcyA9ICh1aW50NjRfdCkodWludHB0cl90KWNo dW5rX2FycmF5Ow0KPj4gKyAgICAgICBjcy5pbi5jdHhfaWQgPSBjb250ZXh0LT5pZDsNCj4+ICsg ICAgICAgY3MuaW4uYm9fbGlzdF9oYW5kbGUgPSBib19saXN0X2hhbmRsZTsNCj4+ICsgICAgICAg Y3MuaW4ubnVtX2NodW5rcyA9IG51bV9jaHVua3M7DQo+PiArICAgICAgIHIgPSBkcm1Db21tYW5k V3JpdGVSZWFkKGRldi0+ZmQsIERSTV9BTURHUFVfQ1MsDQo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZjcywgc2l6ZW9mKGNzKSk7DQo+PiArICAgICAgIGlmICghciAmJiBzZXFf bm8pDQo+PiArICAgICAgICAgICAgICAgKnNlcV9ubyA9IGNzLm91dC5oYW5kbGU7DQo+PiArICAg ICAgIHJldHVybiByOw0KPj4gK30NCj4+ICsNCj4+ICAgZHJtX3B1YmxpYyB2b2lkIGFtZGdwdV9j c19jaHVua19mZW5jZV9pbmZvX3RvX2RhdGEoc3RydWN0IGFtZGdwdV9jc19mZW5jZV9pbmZvICpm ZW5jZV9pbmZvLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19kYXRhICpkYXRhKQ0KPj4gICB7DQo+PiAgICAgICAg ICBkYXRhLT5mZW5jZV9kYXRhLmhhbmRsZSA9IGZlbmNlX2luZm8tPmhhbmRsZS0+aGFuZGxlOw0K Pj4gICAgICAgICAgZGF0YS0+ZmVuY2VfZGF0YS5vZmZzZXQgPSBmZW5jZV9pbmZvLT5vZmZzZXQg KiBzaXplb2YodWludDY0X3QpOw0KPj4gICB9DQo+Pg0KPj4gICBkcm1fcHVibGljIHZvaWQgYW1k Z3B1X2NzX2NodW5rX2ZlbmNlX3RvX2RlcChzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNlICpmZW5jZSwN Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9h bWRncHVfY3NfY2h1bmtfZGVwICpkZXApDQo+PiAgIHsNCj4+IC0tDQo+PiAyLjE3LjENCj4+DQo+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4gYW1k LWdmeCBtYWlsaW5nIGxpc3QNCj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPG1haWx0 bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4NCj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeA0KPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBhbWQtZ2Z4IG1haWxpbmcgbGlzdA0KPiBh bWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzxtYWlsdG86YW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmc+DQo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vYW1kLWdmeA0KDQoNCg== --_000_a550562a7d369acf3143217c507e667aamdcom_ Content-Type: text/html; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHRleHQ9IiMwMDAwMDAi IGJnY29sb3I9IiNGRkZGRkYiPg0KPGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5BbSAxNi4w MS4xOSB1bSAxNTozMSBzY2hyaWViIE1hcmVrIE9sxaHDoWs6PGJyPg0KPC9kaXY+DQo8YmxvY2tx dW90ZSB0eXBlPSJjaXRlIiBjaXRlPSJtaWQ6Q0FBeEUyQTV5d0ZrTk10UGJlc1Vfa3VTd0tDbXNQ SjBEOHdSRnVTcDE0bXBPUmN3WWhnQG1haWwuZ21haWwuY29tIj4NCjxkaXYgZGlyPSJhdXRvIj4N CjxkaXY+PGJyPg0KPGJyPg0KPGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPg0KPGRpdiBkaXI9Imx0 ciI+T24gV2VkLCBKYW4gMTYsIDIwMTksIDc6NTUgQU0gQ2hyaXN0aWFuIEvDtm5pZyAmbHQ7PGEg aHJlZj0ibWFpbHRvOmNrb2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwuY29tIiBtb3otZG8tbm90 LXNlbmQ9InRydWUiPmNrb2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwuY29tPC9hPiB3cm90ZTo8 YnI+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdp bjowIDAgMA0KICAgICAgICAgICAgICAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3Bh ZGRpbmctbGVmdDoxZXgiPg0KV2VsbCBpZiB5b3UgYXNrIG1lIHdlIHNob3VsZCBoYXZlIHRoZSBm b2xsb3dpbmcgaW50ZXJmYWNlIGZvciA8YnI+DQpuZWdvdGlhdGluZyBtZW1vcnkgbWFuYWdlbWVu dCB3aXRoIHRoZSBrZXJuZWw6PGJyPg0KPGJyPg0KMS4gV2UgaGF2ZSBwZXIgcHJvY2VzcyBCT3Mg d2hpY2ggY2FuJ3QgYmUgc2hhcmVkIGJldHdlZW4gcHJvY2Vzc2VzLjxicj4NCjxicj4NClRob3Nl IGFyZSBhbHdheXMgdmFsaWQgYW5kIGRvbid0IG5lZWQgdG8gYmUgbWVudGlvbmVkIGluIGFueSBC TyBsaXN0IDxicj4NCndoYXRzb2V2ZXIuPGJyPg0KPGJyPg0KSWYgd2Uga25ldyB0aGF0IGEgcGVy IHByb2Nlc3MgQk8gaXMgY3VycmVudGx5IG5vdCBpbiB1c2Ugd2UgY2FuIDxicj4NCm9wdGlvbmFs bHkgdGVsbCB0aGF0IHRvIHRoZSBrZXJuZWwgdG8gbWFrZSBtZW1vcnkgbWFuYWdlbWVudCBtb3Jl IGVmZmljaWVudC48YnI+DQo8YnI+DQpJbiBvdGhlciB3b3JkcyBpbnN0ZWFkIG9mIGEgbGlzdCBv ZiBzdHVmZiB3aGljaCBpcyB1c2VkIHdlIHNlbmQgZG93biB0byA8YnI+DQp0aGUga2VybmVsIGEg bGlzdCBvZiBzdHVmZiB3aGljaCBpcyBub3QgdXNlZCBhbnkgbW9yZSBhbmQgdGhhdCBvbmx5IHdo ZW4gPGJyPg0Kd2Uga25vdyB0aGF0IGl0IGlzIG5lY2Vzc2FyeSwgZS5nLiB3aGVuIGEgZ2FtZSBv ciBhcHBsaWNhdGlvbiBvdmVyY29tbWl0cy48YnI+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjwv ZGl2Pg0KPGRpdiBkaXI9ImF1dG8iPjxicj4NCjwvZGl2Pg0KPGRpdiBkaXI9ImF1dG8iPlJhZGVv bnNpIGRvZXNuJ3QgdXNlIHRoaXMgYmVjYXVzZSB0aGlzIGFwcHJvYWNoIGNhdXNlZCBwZXJmb3Jt YW5jZSBkZWdyYWRhdGlvbiBhbmQgYWxzbyBkcm9wcyBCTyBwcmlvcml0aWVzLjwvZGl2Pg0KPC9k aXY+DQo8L2Jsb2NrcXVvdGU+DQo8YnI+DQpUaGUgcGVyZm9ybWFuY2UgZGVncmFkYXRpb24gd2hl cmUgbW9zdGx5IHNob3J0Y29taW5ncyB3aXRoIHRoZSBMUlUgd2hpY2ggYnkgbm93IGhhdmUgYmVl biBmaXhlZC48YnI+DQo8YnI+DQpCTyBwcmlvcml0aWVzIGFyZSBhIGRpZmZlcmVudCB0b3BpYywg YnV0IGNvdWxkIGJlIGFkZGVkIHRvIHBlciBWTSBCT3MgYXMgd2VsbC48YnI+DQo8YnI+DQpDaHJp c3RpYW4uPGJyPg0KPGJyPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2l0ZT0ibWlkOkNBQXhF MkE1eXdGa05NdFBiZXNVX2t1U3dLQ21zUEowRDh3UkZ1U3AxNG1wT1Jjd1loZ0BtYWlsLmdtYWls LmNvbSI+DQo8ZGl2IGRpcj0iYXV0byI+DQo8ZGl2IGRpcj0iYXV0byI+PGJyPg0KPC9kaXY+DQo8 ZGl2IGRpcj0iYXV0byI+TWFyZWs8L2Rpdj4NCjxkaXYgZGlyPSJhdXRvIj48YnI+DQo8L2Rpdj4N CjxkaXYgZGlyPSJhdXRvIj4NCjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj4NCjxibG9ja3F1b3Rl IGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMA0KICAgICAgICAgICAgICAu OGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPg0KPGJyPg0K Mi4gV2UgaGF2ZSBzaGFyZWQgQk9zIHdoaWNoIGFyZSB1c2VkIGJ5IG1vcmUgdGhhbiBvbmUgcHJv Y2Vzcy48YnI+DQo8YnI+DQpUaG9zZSBhcmUgcmFyZSBhbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRo ZSBwZXIgQ1MgbGlzdCBvZiBCT3MgaW4gdXNlLjxicj4NCjxicj4NCjxicj4NClRoZSB3aG9sZSBC TyBsaXN0IGludGVyZmFjZSBNYXJlayB0cmllcyB0byBvcHRpbWl6ZSBoZXJlIHNob3VsZCBiZSA8 YnI+DQpkZXByZWNhdGVkIGFuZCBub3QgdXNlZCBhbnkgbW9yZS48YnI+DQo8YnI+DQpSZWdhcmRz LDxicj4NCkNocmlzdGlhbi48YnI+DQo8YnI+DQpBbSAxNi4wMS4xOSB1bSAxMzo0NiBzY2hyaWVi IEJhcyBOaWV1d2VuaHVpemVuOjxicj4NCiZndDsgU28gcmFuZG9tIHF1ZXN0aW9uczo8YnI+DQom Z3Q7PGJyPg0KJmd0OyAxKSBJbiB0aGlzIGRpc2N1c3Npb24gaXQgd2FzIG1lbnRpb25lZCB0aGF0 IHNvbWUgVnVsa2FuIGRyaXZlcnMgc3RpbGw8YnI+DQomZ3Q7IHVzZSB0aGUgYm9fbGlzdCBpbnRl cmZhY2UuIEkgdGhpbmsgdGhhdCBpbXBsaWVzIHJhZHYgYXMgSSB0aGluayB3ZSdyZTxicj4NCiZn dDsgc3RpbGwgdXNpbmcgYm9fbGlzdC4gSXMgdGhlcmUgYW55IG90aGVyIEFQSSB3ZSBzaG91bGQg YmUgdXNpbmc/IChBbHNvLDxicj4NCiZndDsgd2l0aCBWS19FWFRfZGVzY3JpcHRvcl9pbmRleGlu ZyBJIHN1c3BlY3Qgd2UnbGwgYmUgbW92aW5nIG1vcmUgdG93YXJkczxicj4NCiZndDsgYSBnbG9i YWwgYm8gbGlzdCBpbnN0ZWFkIG9mIGEgY21kIGJ1ZmZlciBvbmUsIGFzIHdlIGNhbm5vdCBrbm93 IGFsbDxicj4NCiZndDsgdGhlIEJPcyByZWZlcmVuY2VkIGFueW1vcmUsIGJ1dCBub3Qgc3VyZSB3 aGF0IGVuZCBzdGF0ZSBoZXJlIHdpbGwgYmUpLjxicj4NCiZndDs8YnI+DQomZ3Q7IDIpIFRoZSBv dGhlciBhbHRlcm5hdGl2ZSBtZW50aW9uZWQgd2FzIGFkZGluZyB0aGUgYnVmZmVycyBkaXJlY3Rs eTxicj4NCiZndDsgaW50byB0aGUgc3VibWl0IGlvY3RsLiBJcyB0aGlzIHRoZSBkZXNpcmVkIGVu ZCBzdGF0ZSAodGhvdWdoIGFzIGFib3ZlPGJyPg0KJmd0OyBJJ20gbm90IHN1cmUgaG93IHRoYXQg d29ya3MgZm9yIHZ1bGthbik/IElmIHllcywgd2hhdCBpcyB0aGUgdGltZWxpbmU8YnI+DQomZ3Q7 IGZvciB0aGlzIHRoYXQgd2UgbmVlZCBzb21ldGhpbmcgaW4gdGhlIGludGVyaW0/PGJyPg0KJmd0 Ozxicj4NCiZndDsgMykgRGlkIHdlIG1lYXN1cmUgYW55IHBlcmZvcm1hbmNlIGJlbmVmaXQ/PGJy Pg0KJmd0Ozxicj4NCiZndDsgSW4gZ2VuZXJhbCBJJ2QgbGlrZSB0byB0byBhY2sgdGhlIHJhdyBi byBsaXN0IGNyZWF0aW9uIGZ1bmN0aW9uIGFzPGJyPg0KJmd0OyB0aGlzIGludGVyZmFjZSBzZWVt cyBlYXNpZXIgdG8gdXNlLiBUaGUgdHdvIGFycmF5cyB0aGluZyBoYXMgYWx3YXlzPGJyPg0KJmd0 OyBiZWVuIGtpbmQgb2YgYSBwYWluIHdoZW4gd2Ugd2FudCB0byB1c2UgZS5nLiBidWlsdGluIHNv cnQgZnVuY3Rpb25zIHRvPGJyPg0KJmd0OyBtYWtlIHN1cmUgd2UgaGF2ZSBubyBkdXBsaWNhdGUg Qk9zLCBidXQgaGF2ZSBzb21lIGNvbW1lbnRzIGJlbG93Ljxicj4NCiZndDs8YnI+DQomZ3Q7IE9u IE1vbiwgSmFuIDcsIDIwMTkgYXQgODozMSBQTSBNYXJlayBPbMWhw6FrICZsdDs8YSBocmVmPSJt YWlsdG86bWFyYWVvQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9yZWZlcnJlciIg bW96LWRvLW5vdC1zZW5kPSJ0cnVlIj5tYXJhZW9AZ21haWwuY29tPC9hPiZndDsgd3JvdGU6PGJy Pg0KJmd0OyZndDsgRnJvbTogTWFyZWsgT2zFocOhayAmbHQ7PGEgaHJlZj0ibWFpbHRvOm1hcmVr Lm9sc2FrQGFtZC5jb20iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vcmVmZXJyZXIiIG1vei1kby1u b3Qtc2VuZD0idHJ1ZSI+bWFyZWsub2xzYWtAYW1kLmNvbTwvYT4mZ3Q7PGJyPg0KJmd0OyZndDs8 YnI+DQomZ3Q7Jmd0OyAtLS08YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDthbWRncHUvYW1kZ3B1 LXN5bWJvbC1jaGVjayB8Jm5ic3A7IDMgJiM0MzsmIzQzOzxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZu YnNwO2FtZGdwdS9hbWRncHUuaCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7IHwgNTYgJiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0 MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7 JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYj NDM7JiM0MzsmIzQzOyYjNDM7JiM0MzstPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7YW1kZ3B1 L2FtZGdwdV9iby5jJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3wgMzYgJiM0Mzsm IzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0 MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7 PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7YW1kZ3B1L2FtZGdwdV9jcy5jJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3wgMjUgJiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7 JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOzxi cj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOzQgZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMo JiM0MzspLCAxIGRlbGV0aW9uKC0pPGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0OyBkaWZmIC0t Z2l0IGEvYW1kZ3B1L2FtZGdwdS1zeW1ib2wtY2hlY2sgYi9hbWRncHUvYW1kZ3B1LXN5bWJvbC1j aGVjazxicj4NCiZndDsmZ3Q7IGluZGV4IDZmNWUwZjk1Li45NmE0NGI0MCAxMDA3NTU8YnI+DQom Z3Q7Jmd0OyAtLS0gYS9hbWRncHUvYW1kZ3B1LXN5bWJvbC1jaGVjazxicj4NCiZndDsmZ3Q7ICYj NDM7JiM0MzsmIzQzOyBiL2FtZGdwdS9hbWRncHUtc3ltYm9sLWNoZWNrPGJyPg0KJmd0OyZndDsg QEAgLTEyLDIwICYjNDM7MTIsMjIgQEAgX2VkYXRhPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7 X2VuZDxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO19maW5pPGJyPg0KJmd0OyZndDsmbmJzcDsg Jm5ic3A7X2luaXQ8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDthbWRncHVfYm9fYWxsb2M8YnI+ DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDthbWRncHVfYm9fY3B1X21hcDxicj4NCiZndDsmZ3Q7Jm5i c3A7ICZuYnNwO2FtZGdwdV9ib19jcHVfdW5tYXA8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDth bWRncHVfYm9fZXhwb3J0PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7YW1kZ3B1X2JvX2ZyZWU8 YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDthbWRncHVfYm9faW1wb3J0PGJyPg0KJmd0OyZndDsm bmJzcDsgJm5ic3A7YW1kZ3B1X2JvX2luY19yZWY8YnI+DQomZ3Q7Jmd0OyAmIzQzO2FtZGdwdV9i b19saXN0X2NyZWF0ZV9yYXc8YnI+DQomZ3Q7Jmd0OyAmIzQzO2FtZGdwdV9ib19saXN0X2Rlc3Ry b3lfcmF3PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7YW1kZ3B1X2JvX2xpc3RfY3JlYXRlPGJy Pg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7YW1kZ3B1X2JvX2xpc3RfZGVzdHJveTxicj4NCiZndDsm Z3Q7Jm5ic3A7ICZuYnNwO2FtZGdwdV9ib19saXN0X3VwZGF0ZTxicj4NCiZndDsmZ3Q7Jm5ic3A7 ICZuYnNwO2FtZGdwdV9ib19xdWVyeV9pbmZvPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7YW1k Z3B1X2JvX3NldF9tZXRhZGF0YTxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO2FtZGdwdV9ib192 YV9vcDxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO2FtZGdwdV9ib192YV9vcF9yYXc8YnI+DQom Z3Q7Jmd0OyZuYnNwOyAmbmJzcDthbWRncHVfYm9fd2FpdF9mb3JfaWRsZTxicj4NCiZndDsmZ3Q7 Jm5ic3A7ICZuYnNwO2FtZGdwdV9jcmVhdGVfYm9fZnJvbV91c2VyX21lbTxicj4NCiZndDsmZ3Q7 Jm5ic3A7ICZuYnNwO2FtZGdwdV9jc19jaHVua19mZW5jZV9pbmZvX3RvX2RhdGE8YnI+DQomZ3Q7 Jmd0OyBAQCAtNDAsMjAgJiM0Mzs0MiwyMSBAQCBhbWRncHVfY3NfZGVzdHJveV9zZW1hcGhvcmU8 YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDthbWRncHVfY3NfZGVzdHJveV9zeW5jb2JqPGJyPg0K Jmd0OyZndDsmbmJzcDsgJm5ic3A7YW1kZ3B1X2NzX2V4cG9ydF9zeW5jb2JqPGJyPg0KJmd0OyZn dDsmbmJzcDsgJm5ic3A7YW1kZ3B1X2NzX2ZlbmNlX3RvX2hhbmRsZTxicj4NCiZndDsmZ3Q7Jm5i c3A7ICZuYnNwO2FtZGdwdV9jc19pbXBvcnRfc3luY29iajxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZu YnNwO2FtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0dXM8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJz cDthbWRncHVfY3NfcXVlcnlfcmVzZXRfc3RhdGU8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDth bWRncHVfcXVlcnlfc3dfaW5mbzxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO2FtZGdwdV9jc19z aWduYWxfc2VtYXBob3JlPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7YW1kZ3B1X2NzX3N1Ym1p dDxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO2FtZGdwdV9jc19zdWJtaXRfcmF3PGJyPg0KJmd0 OyZndDsgJiM0MzthbWRncHVfY3Nfc3VibWl0X3JhdzI8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJz cDthbWRncHVfY3Nfc3luY29ial9leHBvcnRfc3luY19maWxlPGJyPg0KJmd0OyZndDsmbmJzcDsg Jm5ic3A7YW1kZ3B1X2NzX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZTxicj4NCiZndDsmZ3Q7Jm5i c3A7ICZuYnNwO2FtZGdwdV9jc19zeW5jb2JqX3Jlc2V0PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5i c3A7YW1kZ3B1X2NzX3N5bmNvYmpfc2lnbmFsPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7YW1k Z3B1X2NzX3N5bmNvYmpfd2FpdDxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO2FtZGdwdV9jc193 YWl0X2ZlbmNlczxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO2FtZGdwdV9jc193YWl0X3NlbWFw aG9yZTxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO2FtZGdwdV9kZXZpY2VfZGVpbml0aWFsaXpl PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7YW1kZ3B1X2RldmljZV9pbml0aWFsaXplPGJyPg0K Jmd0OyZndDsmbmJzcDsgJm5ic3A7YW1kZ3B1X2ZpbmRfYm9fYnlfY3B1X21hcHBpbmc8YnI+DQom Z3Q7Jmd0OyBkaWZmIC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdS5oIGIvYW1kZ3B1L2FtZGdwdS5oPGJy Pg0KJmd0OyZndDsgaW5kZXggZGM1MTY1OWEuLjViODAwMDMzIDEwMDY0NDxicj4NCiZndDsmZ3Q7 IC0tLSBhL2FtZGdwdS9hbWRncHUuaDxicj4NCiZndDsmZ3Q7ICYjNDM7JiM0MzsmIzQzOyBiL2Ft ZGdwdS9hbWRncHUuaDxicj4NCiZndDsmZ3Q7IEBAIC0zNSwyMCAmIzQzOzM1LDIxIEBAPGJyPg0K Jmd0OyZndDsmbmJzcDsgJm5ic3A7I2RlZmluZSBfQU1ER1BVX0hfPGJyPg0KJmd0OyZndDs8YnI+ DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsjaW5jbHVkZSAmbHQ7c3RkaW50LmgmZ3Q7PGJyPg0KJmd0 OyZndDsmbmJzcDsgJm5ic3A7I2luY2x1ZGUgJmx0O3N0ZGJvb2wuaCZndDs8YnI+DQomZ3Q7Jmd0 Ozxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyNpZmRlZiBfX2NwbHVzcGx1czxicj4NCiZndDsm Z3Q7Jm5ic3A7ICZuYnNwO2V4dGVybiAmcXVvdDtDJnF1b3Q7IHs8YnI+DQomZ3Q7Jmd0OyZuYnNw OyAmbmJzcDsjZW5kaWY8YnI+DQomZ3Q7Jmd0Ozxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO3N0 cnVjdCBkcm1fYW1kZ3B1X2luZm9faHdfaXA7PGJyPg0KJmd0OyZndDsgJiM0MztzdHJ1Y3QgZHJt X2FtZGdwdV9ib19saXN0X2VudHJ5Ozxicj4NCiZndDsmZ3Q7PGJyPg0KJmd0OyZndDsmbmJzcDsg Jm5ic3A7LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7Lyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERlZmluZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tICovPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7LyotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSovPGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsvKio8YnI+ DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgKiBEZWZpbmUgbWF4LiBudW1iZXIgb2YgQ29tbWFuZCBC dWZmZXJzIChJQikgd2hpY2ggY291bGQgYmUgc2VudCB0byB0aGUgc2luZ2xlPGJyPg0KJmd0OyZn dDsmbmJzcDsgJm5ic3A7ICogaGFyZHdhcmUgSVAgdG8gYWNjb21tb2RhdGUgQ0UvREUgcmVxdWly ZW1lbnRzPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICo8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAm bmJzcDsgKiBcc2EgYW1kZ3B1X2NzX2liX2luZm88YnI+DQomZ3Q7Jmd0OyBAQCAtNzY3LDM0ICYj NDM7NzY4LDY1IEBAIGludCBhbWRncHVfYm9fY3B1X3VubWFwKGFtZGdwdV9ib19oYW5kbGUgYnVm X2hhbmRsZSk7PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICombmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGFuZCBubyBHUFUgYWNjZXNzIGlzIHNjaGVkdWxlZC48YnI+ DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgKiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAxIEdQVSBhY2Nlc3MgaXMgaW4gZmx5IG9yIHNjaGVkdWxlZDxicj4NCiZndDsmZ3Q7Jm5ic3A7 ICZuYnNwOyAqPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICogXHJldHVybiZuYnNwOyAmbmJz cDswIC0gb24gc3VjY2Vzczxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAqJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbHQ7MCAtIE5lZ2F0aXZlIFBPU0lYIEVycm9yIGNvZGU8 YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgKi88YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDtp bnQgYW1kZ3B1X2JvX3dhaXRfZm9yX2lkbGUoYW1kZ3B1X2JvX2hhbmRsZSBidWZfaGFuZGxlLDxi cj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgdWludDY0X3QgdGltZW91dF9ucyw8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGJvb2wgKmJ1ZmZlcl9idXN5KTs8YnI+DQomZ3Q7 Jmd0Ozxicj4NCiZndDsmZ3Q7ICYjNDM7LyoqPGJyPg0KJmd0OyZndDsgJiM0MzsgKiBDcmVhdGVz IGEgQk8gbGlzdCBoYW5kbGUgZm9yIGNvbW1hbmQgc3VibWlzc2lvbi48YnI+DQomZ3Q7Jmd0OyAm IzQzOyAqPGJyPg0KJmd0OyZndDsgJiM0MzsgKiBccGFyYW0mbmJzcDsgJm5ic3A7ZGV2Jm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgLSBcYyBbaW5dIERldmljZSBoYW5kbGUuPGJyPg0KJmd0OyZn dDsgJiM0MzsgKiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyBTZWUgI2FtZGdwdV9kZXZpY2VfaW5pdGlhbGl6ZSgpPGJyPg0KJmd0OyZndDsgJiM0 MzsgKiBccGFyYW0mbmJzcDsgJm5ic3A7bnVtYmVyX29mX2J1ZmZlcnMmbmJzcDsgLSBcYyBbaW5d IE51bWJlciBvZiBCT3MgaW4gdGhlIGxpc3Q8YnI+DQomZ3Q7Jmd0OyAmIzQzOyAqIFxwYXJhbSZu YnNwOyAmbmJzcDtidWZmZXJzJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgLSBcYyBbaW5dIExpc3Qgb2YgQk8gaGFuZGxlczxicj4NCiZndDsmZ3Q7ICYjNDM7ICogXHBh cmFtJm5ic3A7ICZuYnNwO3Jlc3VsdCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOy0gXGMgW291dF0gQ3JlYXRlZCBCTyBsaXN0IGhhbmRsZTxicj4NCiZndDsm Z3Q7ICYjNDM7ICo8YnI+DQomZ3Q7Jmd0OyAmIzQzOyAqIFxyZXR1cm4mbmJzcDsgJm5ic3A7MCBv biBzdWNjZXNzXG48YnI+DQomZ3Q7Jmd0OyAmIzQzOyAqJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbHQ7MCAtIE5lZ2F0aXZlIFBPU0lYIEVycm9yIGNvZGU8YnI+DQomZ3Q7Jmd0 OyAmIzQzOyAqPGJyPg0KJmd0OyZndDsgJiM0MzsgKiBcc2EgYW1kZ3B1X2JvX2xpc3RfZGVzdHJv eV9yYXcoKTxicj4NCiZndDsmZ3Q7ICYjNDM7Ki88YnI+DQomZ3Q7Jmd0OyAmIzQzO2ludCBhbWRn cHVfYm9fbGlzdF9jcmVhdGVfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiw8YnI+DQomZ3Q7 Jmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 dWludDMyX3QgbnVtYmVyX29mX2J1ZmZlcnMsPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0cnVjdCBkcm1fYW1kZ3B1X2Jv X2xpc3RfZW50cnkgKmJ1ZmZlcnMsPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3VpbnQzMl90ICpyZXN1bHQpOzxicj4NCiZn dDsgU28gQUZBSVUmbmJzcDsgZHJtX2FtZGdwdV9ib19saXN0X2VudHJ5IHRha2VzIGEgcmF3IGJv IGhhbmRsZSB3aGlsZSB3ZTxicj4NCiZndDsgbmV2ZXIgZ2V0IGEgcmF3IGJvIGhhbmRsZSBmcm9t IGxpYmRybV9hbWRncHUuIEhvdyBhcmUgd2Ugc3VwcG9zZWQgdG88YnI+DQomZ3Q7IGZpbGwgaXQg aW4/PGJyPg0KJmd0Ozxicj4NCiZndDsgV2hhdCBkbyB3ZSB3aW4gYnkgaGF2aW5nIHRoZSByYXcg aGFuZGxlIGZvciB0aGUgYm9fbGlzdD8gSWYgd2Ugd291bGQ8YnI+DQomZ3Q7IG5vdCByZXR1cm4g dGhlIHJhdyBoYW5kbGUgd2Ugd291bGQgbm90IG5lZWQgdGhlIHN1Ym1pdF9yYXcyLjxicj4NCiZn dDs8YnI+DQomZ3Q7Jmd0OyAmIzQzOzxicj4NCiZndDsmZ3Q7ICYjNDM7LyoqPGJyPg0KJmd0OyZn dDsgJiM0MzsgKiBEZXN0cm95cyBhIEJPIGxpc3QgaGFuZGxlLjxicj4NCiZndDsmZ3Q7ICYjNDM7 ICo8YnI+DQomZ3Q7Jmd0OyAmIzQzOyAqIFxwYXJhbSZuYnNwOyAmbmJzcDtib19saXN0Jm5ic3A7 ICZuYnNwOyAtIFxjIFtpbl0gQk8gbGlzdCBoYW5kbGUuPGJyPg0KJmd0OyZndDsgJiM0MzsgKjxi cj4NCiZndDsmZ3Q7ICYjNDM7ICogXHJldHVybiZuYnNwOyAmbmJzcDswIG9uIHN1Y2Nlc3Ncbjxi cj4NCiZndDsmZ3Q7ICYjNDM7ICombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZs dDswIC0gTmVnYXRpdmUgUE9TSVggRXJyb3IgY29kZTxicj4NCiZndDsmZ3Q7ICYjNDM7ICo8YnI+ DQomZ3Q7Jmd0OyAmIzQzOyAqIFxzYSBhbWRncHVfYm9fbGlzdF9jcmVhdGVfcmF3KCksIGFtZGdw dV9jc19zdWJtaXRfcmF3MigpPGJyPg0KJmd0OyZndDsgJiM0MzsqLzxicj4NCiZndDsmZ3Q7ICYj NDM7aW50IGFtZGdwdV9ib19saXN0X2Rlc3Ryb3lfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRl diwgdWludDMyX3QgYm9fbGlzdCk7PGJyPg0KJmd0OyZndDsgJiM0Mzs8YnI+DQomZ3Q7Jmd0OyZu YnNwOyAmbmJzcDsvKio8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgKiBDcmVhdGVzIGEgQk8g bGlzdCBoYW5kbGUgZm9yIGNvbW1hbmQgc3VibWlzc2lvbi48YnI+DQomZ3Q7Jmd0OyZuYnNwOyAm bmJzcDsgKjxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAqIFxwYXJhbSZuYnNwOyAmbmJzcDtk ZXYmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAtIFxjIFtpbl0gRGV2aWNlIGhhbmRsZS48YnI+ DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgKiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBTZWUgI2FtZGdwdV9kZXZpY2VfaW5pdGlhbGl6ZSgpPGJy Pg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICogXHBhcmFtJm5ic3A7ICZuYnNwO251bWJlcl9vZl9y ZXNvdXJjZXMmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgLSBcYyBbaW5dIE51bWJlciBvZiBC T3MgaW4gdGhlIGxpc3Q8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgKiBccGFyYW0mbmJzcDsg Jm5ic3A7cmVzb3VyY2VzJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAtIFxjIFtp bl0gTGlzdCBvZiBCTyBoYW5kbGVzPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICogXHBhcmFt Jm5ic3A7ICZuYnNwO3Jlc291cmNlX3ByaW9zJm5ic3A7ICZuYnNwOyAmbmJzcDstIFxjIFtpbl0g T3B0aW9uYWwgcHJpb3JpdHkgZm9yIGVhY2ggaGFuZGxlPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5i c3A7ICogXHBhcmFtJm5ic3A7ICZuYnNwO3Jlc3VsdCZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOy0gXGMgW291dF0gQ3JlYXRlZCBCTyBsaXN0IGhhbmRsZTxi cj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAqPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICog XHJldHVybiZuYnNwOyAmbmJzcDswIG9uIHN1Y2Nlc3Ncbjxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZu YnNwOyAqJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbHQ7MCAtIE5lZ2F0aXZl IFBPU0lYIEVycm9yIGNvZGU8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgKjxicj4NCiZndDsm Z3Q7IC0gKiBcc2EgYW1kZ3B1X2JvX2xpc3RfZGVzdHJveSgpPGJyPg0KJmd0OyZndDsgJiM0Mzsg KiBcc2EgYW1kZ3B1X2JvX2xpc3RfZGVzdHJveSgpLCBhbWRncHVfY3Nfc3VibWl0X3JhdzIoKTxi cj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyovPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7aW50 IGFtZGdwdV9ib19saXN0X2NyZWF0ZShhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsPGJyPg0KJmd0 OyZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHVpbnQzMl90IG51 bWJlcl9vZl9yZXNvdXJjZXMsPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7IGFtZGdwdV9ib19oYW5kbGUgKnJlc291cmNlcyw8YnI+DQomZ3Q7Jmd0 OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgdWludDhfdCAqcmVzb3Vy Y2VfcHJpb3MsPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7IGFtZGdwdV9ib19saXN0X2hhbmRsZSAqcmVzdWx0KTs8YnI+DQomZ3Q7Jmd0Ozxicj4N CiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOy8qKjxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAqIERl c3Ryb3lzIGEgQk8gbGlzdCBoYW5kbGUuPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICo8YnI+ DQomZ3Q7Jmd0OyBAQCAtMTU4MCwyMCAmIzQzOzE2MTIsNDIgQEAgc3RydWN0IGRybV9hbWRncHVf Y3NfY2h1bms7PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7c3RydWN0IGRybV9hbWRncHVfY3Nf Y2h1bmtfZGVwOzxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO3N0cnVjdCBkcm1fYW1kZ3B1X2Nz X2NodW5rX2RhdGE7PGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDtpbnQg YW1kZ3B1X2NzX3N1Ym1pdF9yYXcoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LDxicj4NCiZndDsm Z3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2FtZGdwdV9jb250ZXh0 X2hhbmRsZSBjb250ZXh0LDxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO2FtZGdwdV9ib19saXN0X2hhbmRsZSBib19saXN0X2hhbmRsZSw8YnI+DQom Z3Q7Jmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpbnQgbnVtX2No dW5rcyw8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVuayAqY2h1bmtzLDxicj4NCiZndDsmZ3Q7Jm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3VpbnQ2NF90ICpzZXFfbm8pOzxicj4N CiZndDsmZ3Q7PGJyPg0KJmd0OyZndDsgJiM0MzsvKio8YnI+DQomZ3Q7Jmd0OyAmIzQzOyAqIFN1 Ym1pdCByYXcgY29tbWFuZCBzdWJtaXNzaW9uIHRvIHRoZSBrZXJuZWwgd2l0aCBhIHJhdyBCTyBs aXN0IGhhbmRsZS48YnI+DQomZ3Q7Jmd0OyAmIzQzOyAqPGJyPg0KJmd0OyZndDsgJiM0MzsgKiBc cGFyYW0mbmJzcDsgJm5ic3A7ZGV2Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOy0gXGMgW2luXSBkZXZpY2UgaGFuZGxlPGJyPg0KJmd0OyZndDsg JiM0MzsgKiBccGFyYW0mbmJzcDsgJm5ic3A7Y29udGV4dCZuYnNwOyAmbmJzcDsgLSBcYyBbaW5d IGNvbnRleHQgaGFuZGxlIGZvciBjb250ZXh0IGlkPGJyPg0KJmd0OyZndDsgJiM0MzsgKiBccGFy YW0mbmJzcDsgJm5ic3A7Ym9fbGlzdF9oYW5kbGUgLSBcYyBbaW5dIHJhdyBibyBsaXN0IGhhbmRs ZSAoMCBmb3Igbm9uZSk8YnI+DQomZ3Q7Jmd0OyAmIzQzOyAqIFxwYXJhbSZuYnNwOyAmbmJzcDtu dW1fY2h1bmtzIC0gXGMgW2luXSBudW1iZXIgb2YgQ1MgY2h1bmtzIHRvIHN1Ym1pdDxicj4NCiZn dDsmZ3Q7ICYjNDM7ICogXHBhcmFtJm5ic3A7ICZuYnNwO2NodW5rcyZuYnNwOyAmbmJzcDsgJm5i c3A7LSBcYyBbaW5dIGFycmF5IG9mIENTIGNodW5rczxicj4NCiZndDsmZ3Q7ICYjNDM7ICogXHBh cmFtJm5ic3A7ICZuYnNwO3NlcV9ubyZuYnNwOyAmbmJzcDsgJm5ic3A7LSBcYyBbb3V0XSBvdXRw dXQgc2VxdWVuY2UgbnVtYmVyIGZvciBzdWJtaXNzaW9uLjxicj4NCiZndDsmZ3Q7ICYjNDM7ICo8 YnI+DQomZ3Q7Jmd0OyAmIzQzOyAqIFxyZXR1cm4mbmJzcDsgJm5ic3A7MCBvbiBzdWNjZXNzXG48 YnI+DQomZ3Q7Jmd0OyAmIzQzOyAqJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bHQ7MCAtIE5lZ2F0aXZlIFBPU0lYIEVycm9yIGNvZGU8YnI+DQomZ3Q7Jmd0OyAmIzQzOyAqPGJy Pg0KJmd0OyZndDsgJiM0MzsgKiBcc2EgYW1kZ3B1X2JvX2xpc3RfY3JlYXRlX3JhdygpLCBhbWRn cHVfYm9fbGlzdF9kZXN0cm95X3JhdygpPGJyPg0KJmd0OyZndDsgJiM0MzsgKi88YnI+DQomZ3Q7 Jmd0OyAmIzQzO2ludCBhbWRncHVfY3Nfc3VibWl0X3JhdzIoYW1kZ3B1X2RldmljZV9oYW5kbGUg ZGV2LDxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 YW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQsPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt1aW50MzJfdCBib19saXN0X2hhbmRsZSw8YnI+DQom Z3Q7Jmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2ludCBudW1fY2h1 bmtzLDxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 c3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmsgKmNodW5rcyw8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3VpbnQ2NF90ICpzZXFfbm8pOzxicj4NCiZn dDsmZ3Q7ICYjNDM7PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7dm9pZCBhbWRncHVfY3NfY2h1 bmtfZmVuY2VfdG9fZGVwKHN0cnVjdCBhbWRncHVfY3NfZmVuY2UgKmZlbmNlLDxicj4NCiZndDsm Z3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfZGVwICpkZXApOzxicj4N CiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO3ZvaWQgYW1kZ3B1X2NzX2NodW5rX2ZlbmNlX2luZm9fdG9f ZGF0YShzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNlX2luZm8gKmZlbmNlX2luZm8sPGJyPg0KJmd0OyZn dDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19j aHVua19kYXRhICpkYXRhKTs8YnI+DQomZ3Q7Jmd0Ozxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNw Oy8qKjxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAqIFJlc2VydmUgVk1JRDxicj4NCiZndDsm Z3Q7Jm5ic3A7ICZuYnNwOyAqIFxwYXJhbSZuYnNwOyAmbmJzcDtjb250ZXh0IC0gXGMgW2luXSZu YnNwOyBHUFUgQ29udGV4dDxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAqIFxwYXJhbSZuYnNw OyAmbmJzcDtmbGFncyAtIFxjIFtpbl0mbmJzcDsgVEJEPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5i c3A7ICo8YnI+DQomZ3Q7Jmd0OyBkaWZmIC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdV9iby5jIGIvYW1k Z3B1L2FtZGdwdV9iby5jPGJyPg0KJmd0OyZndDsgaW5kZXggYzBmNDJlODEuLjIxYmM3M2FhIDEw MDY0NDxicj4NCiZndDsmZ3Q7IC0tLSBhL2FtZGdwdS9hbWRncHVfYm8uYzxicj4NCiZndDsmZ3Q7 ICYjNDM7JiM0MzsmIzQzOyBiL2FtZGdwdS9hbWRncHVfYm8uYzxicj4NCiZndDsmZ3Q7IEBAIC02 MTEsMjAgJiM0Mzs2MTEsNTYgQEAgZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NyZWF0ZV9ib19mcm9t X3VzZXJfbWVtKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiw8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcHRocmVhZF9tdXRleF9sb2NrKCZhbXA7ZGV2LSZn dDtib190YWJsZV9tdXRleCk7PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7IHIgPSBoYW5kbGVfdGFibGVfaW5zZXJ0KCZhbXA7ZGV2LSZndDtib19oYW5kbGVz LCAoKmJ1Zl9oYW5kbGUpLSZndDtoYW5kbGUsPGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICpidWZfaGFuZGxl KTs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcHRocmVh ZF9tdXRleF91bmxvY2soJmFtcDtkZXYtJmd0O2JvX3RhYmxlX211dGV4KTs8YnI+DQomZ3Q7Jmd0 OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgaWYgKHIpPGJyPg0KJmd0OyZndDsm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyBhbWRncHVfYm9fZnJlZSgqYnVmX2hhbmRsZSk7PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5i c3A7b3V0Ojxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBy ZXR1cm4gcjs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDt9PGJyPg0KJmd0OyZndDs8YnI+DQom Z3Q7Jmd0OyAmIzQzO2RybV9wdWJsaWMgaW50IGFtZGdwdV9ib19saXN0X2NyZWF0ZV9yYXcoYW1k Z3B1X2RldmljZV9oYW5kbGUgZGV2LDxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyB1aW50MzJfdCBudW1iZXJfb2ZfYnVmZmVycyw8YnI+DQomZ3Q7Jmd0OyAmIzQz OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgc3RydWN0IGRybV9hbWRncHVfYm9fbGlzdF9lbnRy eSAqYnVmZmVycyw8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg dWludDMyX3QgKnJlc3VsdCk8YnI+DQomZ3Q7Jmd0OyAmIzQzO3s8YnI+DQomZ3Q7Jmd0OyAmIzQz OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3VuaW9uIGRybV9hbWRncHVfYm9fbGlzdCBhcmdz Ozxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aW50IHI7PGJy Pg0KJmd0OyZndDsgJiM0Mzs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO21lbXNldCgmYW1wO2FyZ3MsIDAsIHNpemVvZihhcmdzKSk7PGJyPg0KJmd0OyZndDsg JiM0MzsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDthcmdzLmluLm9wZXJhdGlvbiA9IEFNREdQ VV9CT19MSVNUX09QX0NSRUFURTs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO2FyZ3MuaW4uYm9fbnVtYmVyID0gbnVtYmVyX29mX2J1ZmZlcnM7PGJyPg0KJmd0 OyZndDsgJiM0MzsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDthcmdzLmluLmJvX2luZm9fc2l6 ZSA9IHNpemVvZihzdHJ1Y3QgZHJtX2FtZGdwdV9ib19saXN0X2VudHJ5KTs8YnI+DQomZ3Q7Jmd0 OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2FyZ3MuaW4uYm9faW5mb19wdHIgPSAo dWludDY0X3QpKHVpbnRwdHJfdClidWZmZXJzOzxicj4NCiZndDsmZ3Q7ICYjNDM7PGJyPg0KJmd0 OyZndDsgJiM0MzsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyID0gZHJtQ29tbWFuZFdyaXRl UmVhZChkZXYtJmd0O2ZkLCBEUk1fQU1ER1BVX0JPX0xJU1QsPGJyPg0KJmd0OyZndDsgJiM0Mzsm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmYW1w O2FyZ3MsIHNpemVvZihhcmdzKSk7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDtpZiAocik8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4gcjs8YnI+DQomZ3Q7Jmd0 OyAmIzQzOzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KnJl c3VsdCA9IGFyZ3Mub3V0Lmxpc3RfaGFuZGxlOzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuIDA7PGJyPg0KJmd0OyZndDsgJiM0Mzt9PGJyPg0KJmd0 OyZndDsgJiM0Mzs8YnI+DQomZ3Q7Jmd0OyAmIzQzO2RybV9wdWJsaWMgaW50IGFtZGdwdV9ib19s aXN0X2Rlc3Ryb3lfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiw8YnI+DQomZ3Q7Jmd0OyAm IzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7dWludDMyX3QgYm9fbGlzdCk8YnI+ DQomZ3Q7Jmd0OyAmIzQzO3s8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO3VuaW9uIGRybV9hbWRncHVfYm9fbGlzdCBhcmdzOzxicj4NCiZndDsmZ3Q7ICYjNDM7 PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDttZW1zZXQoJmFt cDthcmdzLCAwLCBzaXplb2YoYXJncykpOzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7YXJncy5pbi5vcGVyYXRpb24gPSBBTURHUFVfQk9fTElTVF9PUF9ERVNU Uk9ZOzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YXJncy5p bi5saXN0X2hhbmRsZSA9IGJvX2xpc3Q7PGJyPg0KJmd0OyZndDsgJiM0Mzs8YnI+DQomZ3Q7Jmd0 OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiBkcm1Db21tYW5kV3JpdGVS ZWFkKGRldi0mZ3Q7ZmQsIERSTV9BTURHUFVfQk9fTElTVCw8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJmFtcDthcmdzLCBzaXplb2YoYXJncykpOzxicj4NCiZndDsmZ3Q7ICYjNDM7fTxicj4NCiZn dDsmZ3Q7ICYjNDM7PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ZHJtX3B1YmxpYyBpbnQgYW1k Z3B1X2JvX2xpc3RfY3JlYXRlKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiw8YnI+DQomZ3Q7Jmd0 OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt1aW50MzJfdCBudW1iZXJfb2ZfcmVzb3VyY2VzLDxi cj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2FtZGdwdV9ib19oYW5kbGUgKnJl c291cmNlcyw8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt1aW50OF90ICpy ZXNvdXJjZV9wcmlvcyw8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDthbWRn cHVfYm9fbGlzdF9oYW5kbGUgKnJlc3VsdCk8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDt7PGJy Pg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHN0cnVjdCBkcm1f YW1kZ3B1X2JvX2xpc3RfZW50cnkgKmxpc3Q7PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IHVuaW9uIGRybV9hbWRncHVfYm9fbGlzdCBhcmdzOzxicj4NCiZn dDsmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB1bnNpZ25lZCBpOzxicj4N CiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBpbnQgcjs8YnI+DQom Z3Q7Jmd0OyBkaWZmIC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvYW1kZ3B1L2FtZGdwdV9j cy5jPGJyPg0KJmd0OyZndDsgaW5kZXggM2I4MjMxYWEuLjViZWRmNzQ4IDEwMDY0NDxicj4NCiZn dDsmZ3Q7IC0tLSBhL2FtZGdwdS9hbWRncHVfY3MuYzxicj4NCiZndDsmZ3Q7ICYjNDM7JiM0Mzsm IzQzOyBiL2FtZGdwdS9hbWRncHVfY3MuYzxicj4NCiZndDsmZ3Q7IEBAIC03MjQsMjAgJiM0Mzs3 MjQsNDUgQEAgZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdF9yYXcoYW1kZ3B1X2Rldmlj ZV9oYW5kbGUgZGV2LDxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyByID0gZHJtQ29tbWFuZFdyaXRlUmVhZChkZXYtJmd0O2ZkLCBEUk1fQU1ER1BVX0NTLDxi cj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmYW1wO2NzLCBzaXplb2YoY3MpKTs8YnI+DQomZ3Q7Jmd0OyZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgaWYgKHIpPGJyPg0KJmd0OyZndDsmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBy ZXR1cm4gcjs8YnI+DQomZ3Q7Jmd0Ozxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyBpZiAoc2VxX25vKTxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgKnNlcV9ubyA9IGNz Lm91dC5oYW5kbGU7PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7IHJldHVybiAwOzxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO308YnI+DQomZ3Q7Jmd0Ozxi cj4NCiZndDsmZ3Q7ICYjNDM7ZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdF9yYXcyKGFt ZGdwdV9kZXZpY2VfaGFuZGxlIGRldiw8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGFt ZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0LDxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgdWludDMyX3QgYm9fbGlzdF9oYW5kbGUsPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyBpbnQgbnVtX2NodW5rcyw8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHN0cnVjdCBk cm1fYW1kZ3B1X2NzX2NodW5rICpjaHVua3MsPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyB1aW50NjRfdCAqc2VxX25vKTxicj4NCiZndDsmZ3Q7ICYjNDM7ezxicj4NCiZndDsmZ3Q7ICYj NDM7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7dW5pb24gZHJtX2FtZGdwdV9jcyBjcyA9IHsw fTs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3VpbnQ2NF90 ICpjaHVua19hcnJheTs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO2ludCBpLCByOzxicj4NCiZndDsmZ3Q7ICYjNDM7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtjaHVua19hcnJheSA9IGFsbG9jYShzaXplb2YodWludDY0 X3QpICogbnVtX2NodW5rcyk7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtmb3IgKGkgPSAwOyBpICZsdDsgbnVtX2NodW5rczsgaSYjNDM7JiM0MzspPGJyPg0K Jmd0OyZndDsgJiM0MzsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7Y2h1bmtfYXJyYXlbaV0gPSAodWludDY0X3QpKHVpbnRwdHJfdCkmYW1wO2No dW5rc1tpXTs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Nz LmluLmNodW5rcyA9ICh1aW50NjRfdCkodWludHB0cl90KWNodW5rX2FycmF5Ozxicj4NCiZndDsm Z3Q7ICYjNDM7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y3MuaW4uY3R4X2lkID0gY29udGV4 dC0mZ3Q7aWQ7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtj cy5pbi5ib19saXN0X2hhbmRsZSA9IGJvX2xpc3RfaGFuZGxlOzxicj4NCiZndDsmZ3Q7ICYjNDM7 Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y3MuaW4ubnVtX2NodW5rcyA9IG51bV9jaHVua3M7 PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyID0gZHJtQ29t bWFuZFdyaXRlUmVhZChkZXYtJmd0O2ZkLCBEUk1fQU1ER1BVX0NTLDxicj4NCiZndDsmZ3Q7ICYj NDM7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 JmFtcDtjcywgc2l6ZW9mKGNzKSk7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDtpZiAoIXIgJmFtcDsmYW1wOyBzZXFfbm8pPGJyPg0KJmd0OyZndDsgJiM0Mzsm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KnNl cV9ubyA9IGNzLm91dC5oYW5kbGU7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDtyZXR1cm4gcjs8YnI+DQomZ3Q7Jmd0OyAmIzQzO308YnI+DQomZ3Q7Jmd0OyAm IzQzOzxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwO2RybV9wdWJsaWMgdm9pZCBhbWRncHVfY3Nf Y2h1bmtfZmVuY2VfaW5mb190b19kYXRhKHN0cnVjdCBhbWRncHVfY3NfZmVuY2VfaW5mbyAqZmVu Y2VfaW5mbyw8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHN0 cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX2RhdGEgKmRhdGEpPGJyPg0KJmd0OyZndDsmbmJzcDsg Jm5ic3A7ezxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBk YXRhLSZndDtmZW5jZV9kYXRhLmhhbmRsZSA9IGZlbmNlX2luZm8tJmd0O2hhbmRsZS0mZ3Q7aGFu ZGxlOzxicj4NCiZndDsmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBkYXRh LSZndDtmZW5jZV9kYXRhLm9mZnNldCA9IGZlbmNlX2luZm8tJmd0O29mZnNldCAqIHNpemVvZih1 aW50NjRfdCk7PGJyPg0KJmd0OyZndDsmbmJzcDsgJm5ic3A7fTxicj4NCiZndDsmZ3Q7PGJyPg0K Jmd0OyZndDsmbmJzcDsgJm5ic3A7ZHJtX3B1YmxpYyB2b2lkIGFtZGdwdV9jc19jaHVua19mZW5j ZV90b19kZXAoc3RydWN0IGFtZGdwdV9jc19mZW5jZSAqZmVuY2UsPGJyPg0KJmd0OyZndDsmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19k ZXAgKmRlcCk8YnI+DQomZ3Q7Jmd0OyZuYnNwOyAmbmJzcDt7PGJyPg0KJmd0OyZndDsgLS08YnI+ DQomZ3Q7Jmd0OyAyLjE3LjE8YnI+DQomZ3Q7Jmd0Ozxicj4NCiZndDsmZ3Q7IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPg0KJmd0OyZndDsgYW1kLWdm eCBtYWlsaW5nIGxpc3Q8YnI+DQomZ3Q7Jmd0OyA8YSBocmVmPSJtYWlsdG86YW1kLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vcmVmZXJyZXIiIG1vei1k by1ub3Qtc2VuZD0idHJ1ZSI+DQphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzwvYT48YnI+ DQomZ3Q7Jmd0OyA8YSBocmVmPSJodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2FtZC1nZngiIHJlbD0ibm9yZWZlcnJlciBub3JlZmVycmVyIiB0YXJnZXQ9Il9i bGFuayIgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIj4NCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeDwvYT48YnI+DQomZ3Q7IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPg0KJmd0OyBhbWQtZ2Z4IG1haWxp bmcgbGlzdDxicj4NCiZndDsgPGEgaHJlZj0ibWFpbHRvOmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub3JlZmVycmVyIiBtb3otZG8tbm90LXNlbmQ9 InRydWUiPg0KYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc8L2E+PGJyPg0KJmd0OyA8YSBo cmVmPSJodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1n ZngiIHJlbD0ibm9yZWZlcnJlciBub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayIgbW96LWRvLW5v dC1zZW5kPSJ0cnVlIj4NCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vYW1kLWdmeDwvYT48YnI+DQo8YnI+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjwvZGl2 Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8YnI+DQo8L2JvZHk+DQo8L2h0bWw+DQo= --_000_a550562a7d369acf3143217c507e667aamdcom_-- --===============2057430871== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBt YWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg== --===============2057430871==--