From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Date: Wed, 8 Sep 2021 05:03:30 +0000 Message-ID: References: <1bc279d0d7bbbb6981eafc6c5bf000ef30fd1aae.1629440060.git.daniel.sangorrin@toshiba.co.jp> In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Fuego] [PATCH 4/4] rt: search for the binary if the build phase is skipped List-Id: Mailing list for the Fuego test framework List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Tim.Bird@sony.com, Venkata.Pyla@toshiba-tsip.com Cc: fuego@lists.linuxfoundation.org, tho1.nguyendat@toshiba.co.jp SGkNCg0KSSB3YXMgdGhpbmtpbmcgdGhhdCBpdCB3b3VsZCBiZSBuaWNlIGlmIHdlIGNvdWxkIHVz ZSBhIHZhcmlhYmxlIHRvIGNvbW11bmljYXRlIHRvIHRoZSB0ZXN0IHdoZXRoZXIgdGhlIHVzZXIg d2FudHMgaXQgdG8gcnVuIHRoZSBob3N0IGJpbmFyeSBvciB0aGUgb25lIGJ1aWx0IGJ5IEZ1ZWdv Lg0KVGhpcyBjb3VsZCBiZSBzZXQgaW4gdGhlIEZ1ZWdvIGNvbmZpZ3VyYXRpb24gKGZ1ZWdvLXJv L2NvbmYvZnVlZ28uY29uZikgYW5kIHRoZW4gb3ZlcnJpZGRlbiBvbiB0aGUgc3BlY3Mgb3IgdGhl IC0tZHluYW1pYy12YXJzIG9wdGlvbi4NCg0KRG9lcyB0aGUgdmFyaWFibGUgICJ1c2VfYmluYXJ5 X3BhY2thZ2VzPWZhbHNlIiBoYXZlIHNvbWV0aGluZyB0byBkbyB3aXRoIHRoaXM/DQoNClRoYW5r cywNCkRhbmllbA0KDQoNCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IEZ1ZWdvIDxmdWVnby1ib3VuY2VzQGxpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmc+IE9uIEJlaGFs ZiBPZiBUaW0uQmlyZEBzb255LmNvbQ0KPiBTZW50OiBXZWRuZXNkYXksIFNlcHRlbWJlciA4LCAy MDIxIDEwOjE0IEFNDQo+IFRvOiBweWxhIHZlbmthdGEo77y077yz77yp77ywKSA8VmVua2F0YS5Q eWxhQHRvc2hpYmEtdHNpcC5jb20+DQo+IENjOiBmdWVnb0BsaXN0cy5saW51eGZvdW5kYXRpb24u b3JnOyBuZ3V5ZW4gZGF0IHRobyjvvLTvvLPvvKTvvLYg77yl772O772H44CA77yRKSA8dGhvMS5u Z3V5ZW5kYXRAdG9zaGliYS5jby5qcD4NCj4gU3ViamVjdDogUmU6IFtGdWVnb10gW1BBVENIIDQv NF0gcnQ6IHNlYXJjaCBmb3IgdGhlIGJpbmFyeSBpZiB0aGUgYnVpbGQgcGhhc2UgaXMgc2tpcHBl ZA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFZlbmthdGEu UHlsYUB0b3NoaWJhLXRzaXAuY29tIDxWZW5rYXRhLlB5bGFAdG9zaGliYS10c2lwLmNvbT4NCj4g Pg0KPiA+IEhpIFRpbSwNCj4gPg0KPiA+IEkgaGF2ZSBmZXcgcXVlc3Rpb25zIG9uIHRoZSBiZWxv dyBpbXBsZW1lbnRhdGlvbiBmb3IgJ2dldF9wcm9ncmFtX3BhdGgnDQo+ID4NCj4gPiBJdCBsb29r cyBsaWtlIHRoZSBmdW5jdGlvbiAnZ2V0X3Byb2dyYW1fcGF0aCcgYWx3YXlzIGZpcnN0IGNoZWNr cyB0aGUgcHJvZ3JhbSBpcyBpbnN0YWxsZWQgaW4gJ1BBVEgnLCB0aGVuIGl0IGNoZWNrcyBpbiBw YXRoICQyIGFuZCB0aGVuDQo+ICQzLg0KPiANCj4gUGF0aCAzIGlzIG5ldmVyIGNoZWNrZWQsIGFu ZCBpdCBpcyBub3QgYSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIGNoZWNrLiAgSXQgaXMgdGhlIHJl dHVybiB2YWx1ZSwgaWYgdGhlIHByb2dyYW0gaXMgbm90IGZvdW5kIGluIHRoZSBvdGhlciAyIHBh dGhzLA0KPiBhbmQgaWYgaXQgaXMgbm90IHNwZWNpZmllZCwgdGhlbiBpdCBkZWZhdWx0cyB0bzoN Cj4gJEJPQVJEX1RFU1RESVIvZnVlZ28uJFRFU1RESVIve3Byb2dyYW1fbmFtZX0NCj4gDQo+IEkg ZGlkIHRoaXMgdG8gbW9zdCBjbG9zZWx5IG1hdGNoIHRoZSBjdXJyZW50IGJlaGF2aW9yIG9mIEZ1 ZWdvLg0KPiBJbiB0aGUgZGlzY3Vzc2lvbiB0aGF0IGZvbGxvd3MsIEknbSB1c2luZyB0aGUgZm9s bG93aW5nIHNob3J0aGFuZDoNCj4gIGEpICBib2FyZCB0ZXN0IGRpciA9ICRCT0FSRF9URVNURElS L2Z1ZWdvLiRURVNURElSDQo+ICBiKSBQQVRIID0gb25lIG9mIHRoZSBkaXJlY3RvcmllcyBpbiB0 aGUgdGFyZ2V0IGJvYXJkcyBQQVRIIHZhcmlhYmxlDQo+ICBjKSBhbHRlcm5hdGUgZGlycy4gPSBv bmUgb2YgdGhlIGRpcmVjdG9yaWVzIHNwZWNpZmllZCBhcyBhbiBhcmd1bWVudCB0byBnZXRfcHJv Z3JhbV9wYXRoICgybmQgYXJndW1lbnQpDQo+IA0KPiBGdWVnbyBoYXMgc2V2ZXJhbCBraW5kcyBv ZiBpbnZvY2F0aW9ucyBvZiBwcm9ncmFtcyBvbiB0aGUgYm9hcmQgaW4gZnVlZ29fdGVzdC5zaCBy ZXBvcnQgZnVuY3Rpb25zIGN1cnJlbnRseToNCj4gIC0gZnJvbSB0aGUgYm9hcmQgdGVzdCBkaXJl Y3RvcnksIHVzaW5nIGEgcmVsYXRpdmUgcGF0aCAoZS5nIHVzaW5nICdjZCBib2FyZCB0ZXN0IGRp ciA7IC4vcHJvZ3JhbV9uYW1lJykNCj4gICAgIC0gdGhlc2UgYXJlIGFsd2F5cyBmb3IgcHJvZ3Jh bXMgdGhhdCBGdWVnbyBoYXMgZGVwbG95ZWQsIHRoaXMgaXMgYnkgZmFyIHRoZSBtb3N0IGNvbW1v biBjYXNlDQo+ICAtIGZyb20gdGhlIGJvYXJkIHRlc3QgZGlyZWN0b3J5LCB1c2luZyBhIGZ1bGwg cGF0aA0KPiAgICAgLSB0aGVzZSBhcmUgYWxzbyBhbHdheXMgZm9yIHByb2dyYW1zIHRoYXQgRnVl Z28gaGFzIGRlcGxveWVkLCB0aGlzIGlzIHZlcnkgcmFyZQ0KPiAgLSBmcm9tIHRoZSBQQVRILCB1 c2luZyBqdXN0IHRoZSBwcm9ncmFtIG5hbWUNCj4gICAgIC0gdGhlc2UgYXJlIGFsd2F5cyBmb3Ig cHJvZ3JhbXMgdGhhdCBhcmUgYWxyZWFkeSBhc3N1bWVkIHRvIGJlIG9uIHRoZSB0YXJnZXQgKHhy YW5kciwgYmMsIGxzLCB0aW1lLCBkZCwgY2F0LCBqYXZhLCBldGMuKQ0KPiAgICAgICAgLSB0aGlz IGlzIGFsc28gYSBmYWlybHkgY29tbW9uIGNhc2UuICBJbiB0aGlzIGNhc2UsIEZ1ZWdvIG5ldmVy IGludGVuZGVkIHRvIGluc3RhbGwgdGhpcyBwcm9ncmFtLg0KPiAgICAgICAgIC0gaWYgdGhlIHBy b2dyYW0gaXMgcG9zc2libHkgbm90IHByZXNlbnQsIHRoZW4gb2Z0ZW4gdGhlcmUgaXMgYW4gYXNz ZXJ0X2hhc19wcm9ncmFtIGluIHRoZSB0ZXN0X3ByZV9jaGVjayB0bw0KPiAgICAgICAgICAgbWFr ZSBzdXJlIGl0IGlzIHByZXNlbnQgYmVmb3JlIHByb2NlZWRpbmcuDQo+ICAtIGZyb20gb3RoZXIg cGxhY2VzDQo+ICAgICAtIExUUCBjYW4gYmUgcnVuIGZyb20gYSBwcmUtaW5zdGFsbGVkIGxvY2F0 aW9uIG5vdywgYnV0IGl0IHJlcXVpcmVzIG1hbnVhbGx5IGNvbmZpZ3VyaW5nIHRoZSBzcGVjIHdp dGgNCj4gICAgICAgYSBIT01FRElSIGFyZ3VtZW50IChvciB0aGUgYm9hcmQgd2l0aCBhIEZVTkNU SU9OQUxfTFRQX0hPTUVESVIgYXJndW1lbnQpDQo+IA0KPiA+IEluIHRoaXMgc2l0dWF0aW9uIHVz ZXIgY2Fubm90IHNraXAgdGhlIGluc3RhbGxlZCBwcm9ncmFtcyBpbiB0aGUgUEFUSCBhbmQgaW5z dGVhZCB1c2Ugc3BlY2lmaWVkIHBhdGggaW4gJDIgb3IgJDM/DQo+IFRoYXQncyBjb3JyZWN0Lg0K PiANCj4gPiBJdCBpcyBub3Qgb3VyIHVzZSBjYXNlIGFueXdheSB0byBza2lwIHRoZSBwcm9ncmFt cyBpbnN0YWxsZWQgaW4gUEFUSCwNCj4gPiByYXRoZXIgd2Ugd2FudCB0byB1c2UgdGhlIGluc3Rh bGxlZCBwcm9ncmFtcyBpbiB0aGUgUEFUSCB2YXJpYWJsZSwgQnV0DQo+ID4gSSB3b3JyaWVkIGlm IEkgdXNlICdnZXRfcHJvZ3JhbV9wYXRoJyBpbiB0aGUgZnVlZ29fdGVzdC5zaCwgaXQgd2lsbA0K PiA+IGFsd2F5cyBjaGVja3MgdGhlIHByb2dyYW0gcHJlc2VudCBpbiBQQVRIIGZpcnN0IGFuZCB0 aGVuIHNwZWNpZmllZCBpbg0KPiA+ICQyIG9yICQzLA0KPiA+IHRoaXMgd2lsbCBicmVhayBmb3Ig dGhlIHVzZXJzIHdobyB3YW50IHRvIHVzZSBwcm9ncmFtIHRoYXQgaXMgY29tcGlsZWQNCj4gPiBh bmQgZGVwbG95ZWQgc3RhZ2VzIG9mIGZ1ZWdvIGFuZCBhbHNvIHdoZW4gdGhlIHByb2dyYW0gaXMg aW5zdGFsbGVkIGluIHRoZSBQQVRILg0KPiANCj4gVGhhdCdzIGEgZ29vZCBvYnNlcnZhdGlvbi4g IEdpdmVuIHRoYXQgdGhlIGN1cnJlbnQgbW9zdC1jb21tb24gYmVoYXZpb3IgaXMgdG8gcnVuIHRo ZSB0ZXN0IHByb2dyYW0gZnJvbSB0aGUgYm9hcmQgdGVzdCBkaXJlY3RvcnksDQo+IHRoYXQgc2hv dWxkIGJlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIGdldF9wcm9ncmFtX3BhdGgsIGluIG9yZGVy IHRvIGNoYW5nZSB0aGUgYmVoYXZpb3IgZm9yIGV4aXN0aW5nIHRlc3RzIGFzIGxpdHRsZSBhcyBw b3NzaWJsZS4NCj4gDQo+IFVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCBpZiB0aGUgdGVzdCBk ZXBsb3lzIGEgcHJvZ3JhbSB0aGF0IHdhcyBidWlsdCBieSBGdWVnbywgd2Ugd2FudCB0byBydW4g dGhhdCwgc2luY2UgaXQgaXMgbW9zdCBsaWtlbHkgdGhhdCB0aGUNCj4gYXJndW1lbnRzIGFuZCBv dXRwdXQgd2lsbCBiZSB3aGF0IHRoZSBGdWVnbyB0ZXN0IGlzIGV4cGVjdGluZyBhbmQgY2FuIHdv cmsgd2l0aC4gIElmIGEgZGlmZmVyZW50IHZlcnNpb24gb2YgdGhlIHRlc3QgcHJvZ3JhbSBpcyBv biB0aGUNCj4gYm9hcmQsIHRoZW4gaXQgbWlnaHQgY2F1c2UgdW5leHBlY3RlZCBwcm9ibGVtcyBy dW5uaW5nIGl0IGFuZCBwYXJzaW5nIHRoZSBvdXRwdXQuDQo+IA0KPiBUaGF0IGlzLCBpZiBGdWVn byBoYXMgZGVwbG95ZWQgJ2RocnlzdG9uZScgKGZvciBleGFtcGxlKSB0byB0aGUgYm9hcmQgdGVz dCBkaXJlY3RvcnksIHdlIHByb2JhYmx5IHdhbnQgdG8gcnVuIHRoYXQgaW5zdGVhZCBvZiBvbmUg Zm91bmQNCj4gb24gdGhlIGJvYXJkIFBBVEguDQo+IA0KPiA+IGUuZzoNCj4gPiAgZnVuY3Rpb24g dGVzdF9ydW4gew0KPiA+IC0gICAgcmVwb3J0ICJjZCAkQk9BUkRfVEVTVERJUi9mdWVnby4kVEVT VERJUjsgLi9kaHJ5c3RvbmUgJEJFTkNITUFSS19ESFJZU1RPTkVfTE9PUFMiDQo+ID4gKyAgICBn ZXRfcHJvZ3JhbV9wYXRoICdkaHJ5c3RvbmUnDQo+ID4gKyAgICByZXBvcnQgIiRQUk9HUkFNX0RI UllTVE9ORSAkQkVOQ0hNQVJLX0RIUllTVE9ORV9MT09QUyINCj4gPiAgfQ0KPiANCj4gQXMgZ2V0 X3Byb2dyYW1fcGF0aCBpcyBjdXJyZW50bHkgd3JpdHRlbiwgeW91IGFyZSByaWdodCwgdGhpcyBn aXZlcyBwcmVmZXJlbmNlIHRvIGRocnlzdG9uZSBvbiB0aGUgUEFUSCBpbnN0ZWFkIG9mIHRoZSBv bmUgaW4gdGhlIGJvYXJkDQo+IHRlc3QgZGlyLg0KPiANCj4gPg0KPiA+IEluc3RlYWQgSSBhbSB0 aGlua2luZyBzb21ldGhpbmcgbGlrZSB0aGlzLCB0aGUgZnVuY3Rpb24NCj4gPiAnZ2V0X3Byb2dy YW1fcGF0aCcgc2hvdWxkIGZpcnN0IGNoZWNrIHRoZSBwYXRoIHNwZWNpZmllZCBpbiAkMiAod2hl cmUNCj4gPiB0aGUgZnVlZ28gYnVpbGQgYW5kIGRlcGxveSBzdGFnZSBhcmUgcGVyZm9ybWVkKSBh bmQsIGlmIG5vdCBmb3VuZCB0aGVuIGNoZWNrIGluIHBhdGggJDMgKHdoZXJlIGZ1ZWdvIGJ1aWxk IGFuZCBkZXBsb3kgc3RhZ2VzIGFyZQ0KPiBza2lwcGVkKSwgdGhpcyBjYW4gYmUgbWFkZSBkZWZh dWx0IGJlaGF2aW91ciBpbnNpZGUgJ2dldF9wcm9ncmFtX3BhdGgnIGZ1bmN0aW9uIGFuZCB1c2Vy IGNhbiBjaGFuZ2UgaWYgaGUgd2FudCBieSBwYXNzaW5nIGRpZmZlcmVudA0KPiBwYXRocy4NCj4g SSBkb24ndCBmb2xsb3cgdGhpcy4gIFNvcnJ5Lg0KPiANCj4gPiBmdW5jdGlvbiB0ZXN0X3J1biB7 DQo+ID4gLSAgICByZXBvcnQgImNkICRCT0FSRF9URVNURElSL2Z1ZWdvLiRURVNURElSOyAuL2Ro cnlzdG9uZSAkQkVOQ0hNQVJLX0RIUllTVE9ORV9MT09QUyINCj4gPiArICAgIGdldF9wcm9ncmFt X3BhdGggJ2RocnlzdG9uZScgICIkQk9BUkRfVEVTVERJUi9mdWVnby4kVEVTVERJUiIgIi9iaW4i DQo+IEknbSBub3Qgc3VyZSB0aG9zZSBhcmd1bWVudHMgbWF0Y2ggd2hhdCB5b3UgYXJlIHNheWlu Zy4gIEknbSBhbHNvIG5vdCBzdXJlIHdoZXJlIHlvdSB0aGluayB0aGUgUEFUSCBjaGVjayBzaG91 bGQgb2NjdXIsIGluIHRoZQ0KPiBzZXF1ZW5jZSBvZiBjaGVja3MgKGlmIGFueXdoZXJlKS4NCj4g DQo+ID4gKyAgICByZXBvcnQgIiRQUk9HUkFNX0RIUllTVE9ORSAkQkVOQ0hNQVJLX0RIUllTVE9O RV9MT09QUyINCj4gDQo+ID4gIH0NCj4gPg0KPiA+IEFsc28gdGhlICdnZXRfcHJvZ3JhbV9wYXRo JyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGluc2lkZSB0aGUgcmVwb3J0DQo+ID4gZnVuY3Rpb24g d2l0aCBkZWZhdWx0IGJlaGF2aW91ciwgYW5kIHRoZW4gcGF0aCBmb3IgJDMgdmFyaWFibGUgY2Fu IGJlIG1vZGlmaWVkIGJ5IHRha2luZyBmcm9tIHRlc3Qgc3BlYyB2YXJpYWJsZS4NCj4gPiBXaXRo IHRoaXMgb25lIGNhbiBjaGFuZ2UgdGhlIHRlc3QgYmVoYXZpb3VyIHRvIHVzZSB0aGUgdGVzdCBw cm9ncmFtIGZyb20gc3BlY2lmaWVkIHBhdGggaW4gdGhlIHRlc3Qgc3BlYyBpdHNlbGYuDQo+IEkg bGlrZSB0aGUgaWRlYSBvZiBhbGxvd2luZyB0aGUgc3BlYyB0byBpbmRpY2F0ZSBhbiBhbHRlcm5h dGUgcGF0aC4NCj4gDQo+ID4NCj4gPiBQbGVhc2UgbGV0IG1lIGtub3cgaWYgdGhpcyBtYWtlIHNl bnNlLCBvciBjbGFyaWZ5IG1lIGlmIEkgbWlzdW5kZXJzdG9vZCBpdCBlbnRpcmVseS4NCj4gWW91 IHJhaXNlIGEgZ29vZCBpc3N1ZSwgYnV0IEknbSBub3Qgc3VyZSBJIHVuZGVyc3Rvb2QgZXhhY3Rs eSB0aGUgdXNlIGNhc2UgeW91IGhhdmUuDQo+IA0KPiBXaGVuIHlvdSBpbnN0YWxsIHRoZSB0ZXN0 IHByb2dyYW0gKGVnLiBkaHJ5c3RvbmUpIGludG8gdGhlIHN5c3RlbSwgc2VwYXJhdGVseSBmcm9t IHRoZSBGdWVnbyBkZXBsb3kgc3RlcCwgYXJlIHlvdSBwbGFubmluZyBvbiBwdXR0aW5nDQo+IGl0 IGluIGEgcmVndWxhciBzeXN0ZW0gZGlyZWN0b3J5IHN1Y2ggYXMgL3Vzci9iaW4sIG9yIGFyZSB5 b3UgcGxhbm5pbmcgb24gcHV0dGluZyBpdCBpbiB0aGUgYm9hcmQgdGVzdCBkaXI/DQo+IA0KPiBB bHNvLCBpZiB0aGUgYmFzZSBkaXN0cmlidXRpb24gb24gdGhlIGJvYXJkIGFscmVhZHkgaGFzIHRo ZSBwcm9ncmFtLCBkbyB5b3Ugd2FudCB0aGUgRnVlZ28gdGVzdCB0byBydW4gdGhlIHByb2dyYW0g eW91IGluc3RhbGxlZCwgb3IgdGhlDQo+IG9uZSBmcm9tIHRoZSBiYXNlIGRpc3RyaWJ1dGlvbj8N Cj4gDQo+IEluIGFueSBldmVudCwgbGV0IG1lIGRlc2NyaWJlIHNvbWUgdXNlIGNhc2VzIGFuZCBz b21lIHNlYXJjaCBvcmRlciBwcmVjZWRlbmNlcywgYW5kIHNlZSBpZiB0aGV5IGNvdmVyIHRoZSBj YXNlcyB3ZSdyZSBpbnRlcmVzdGVkIGluIC0NCj4gdGhlbiBwcm9wb3NlIGEgZGlmZmVyZW50IGlt cGxlbWVudGF0aW9uIG9mIGdldF9wcm9ncmFtX3BhdGguDQo+IA0KPiBVc2UgY2FzZSAjMSAtIHJl Z3VsYXIgRnVlZ28gYnVpbGQsIGRlcGxveSBhbmQgcnVuDQo+ICAgLSBmdWVnbyBwaGFzZXNlIHJ1 bjogYnVpbGQsIGRlcGxveSwgcnVuIChhbmQgb3RoZXJzKQ0KPiAgLSBwcmVmZXJyZWQgc2VhcmNo IHByZWZlcmVuY2U6DQo+ICAgICAtIGJvYXJkIHRlc3QgZGlyDQo+ICAgICAtIGFsdGVybmF0ZSBk aXIocykgKGlmIHNwZWNpZmllZCkNCj4gICAgIC0gUEFUSCBkaXIocykNCj4gDQo+ICBVc2UgY2Fz ZSAjMiAtIEZ1ZWdvIHJ1biwgd2l0aG91dCBidWlsZCBhbmQgZGVwbG95DQo+ICAgIC0gZnVlZ28g cGhhc2VzIHJ1bjogb25seSAncnVuJw0KPiAgICAtIHByZWZlcnJlZCBzZWFyY2ggcHJlZmVyZW5j ZToNCj4gICAgICAgLSBib2FyZCB0ZXN0IGRpcg0KPiAgICAgICAtIGFsdGVybmF0ZSBkaXIocykg KGlmIHNwZWNpZmllZCkNCj4gICAgICAgLSBQQVRIIGRpcihzKQ0KPiANCj4gIFVzZSBjYXNlICMz IC0gRnVlZ28gdGVzdCB0aGF0IGFudGljaXBhdGVzIHRoYXQgdGhlIGRpc3RybyBtYXkgYWxyZWFk eSBoYXZlIHRoZSB0ZXN0IHByb2dyYW0gaW5zdGFsbGVkDQo+ICAgICAtIGZ1ZWdvIHBoYXNlcyBy dW46IG9ubHkgJ3J1bicNCj4gICAgIC0gcHJlZmVycmVkIHNlYXJjaCBwcmVmZXJlbmNlDQo+ICAg ICAgICAtIGZyb20gYWx0ZXJuYXRlIGRpcg0KPiAgICAgICAgLSBmcm9tIFBBVEgNCj4gICAgICAg IC0gZnJvbSBib2FyZCB0ZXN0IGRpcg0KPiANCj4gQWN0dWFsbHksIGluIGNhc2UgMywgc2luY2Ug dGhlcmUgaXMgbm8gZGVwbG95IHN0ZXAsIHRoZXJlIGlzIG5vIGhhcm0gdG8ga2VlcCB0aGUgc2Ft ZSBzZWFyY2ggb3JkZXIgYXMgY2FzZXMgIzEgYW5kICMyIChib2FyZCB0ZXN0IGRpciBmaXJzdCks DQo+IGFzIHRoZSBwcm9ncmFtIHNob3VsZCBuZXZlciBiZSBmb3VuZCBpbiB0aGUgYm9hcmQgdGVz dCBkaXIuDQo+IA0KPiBQbGVhc2UgbGV0IG1lIGtub3cgaWYgdGhpcyBpcyBjb3JyZWN0Lg0KPiAN Cj4gU28sIEknbSBpbmNsaW5lZCB0byByZS13cml0ZSBnZXRfcHJvZ3JhbV9wYXRoIHRvIHN3aXRj aCB0aGUgc2VhcmNoIG9yZGVyIHRvOg0KPiAgLSBib2FyZCB0ZXN0IGRpcg0KPiAgLSBhbHRlcm5h dGUgZGlyDQo+ICAtIFBBVEgNCj4gDQo+IEkgZmluZCB0aGUgJEJPQVJEX1RFU1RESVIvZnVlZ28u JFRFU1RESVIgdG8gYmUgYW5ub3lpbmcsIGFuZCBJIGhhZCBob3BlZCB0byBhdm9pZCB1c2luZyBp dCBhcyBhbiBhcmd1bWVudC4gIElmIGl0J3MgYWx3YXlzIHRoZSBmaXJzdA0KPiBwbGFjZSBzZWFy Y2hlZCwgdGhlbiBpdCBkb2Vzbid0IG5lZWQgdG8gYmUgc3BlY2lmaWVkIGluIHRoZSBhcmd1bWVu dHMuICBJZiB0aGUgcmVmZXJlbmNlIHRvIGl0IGNvdWxkIGJlIHJlbW92ZWQgZnJvbSBmdWVnb190 ZXN0LnNoDQo+IHNjcmlwdHMsIHRoZW4gaXQgd291bGQgZ2l2ZSB0aGUgRnVlZ28gc3lzdGVtIHRo ZSBmbGV4aWJpbGl0eSB0byBjaGFuZ2UgaXQgb3IgdXNlIG90aGVyIHNoZWxsIHZhcmlhYmxlcyBp biB0aGUgZnV0dXJlICh3aGljaCBjb3VsZCBiZSB1c2VmdWwuKQ0KPiANCj4gZ2V0X3Byb2dyYW1f cGF0aCB3b3VsZCB0aGVuIGhhdmUgdGhlIGZvbGxvd2luZyBhcmd1bWVudHM6DQo+ICAgJDEgLSBw cm9ncmFtIHRvIHNlYXJjaCBmb3INCj4gICAkMiAtIGFsdGVybmF0ZSBkaXJzLiB0byBzZWFyY2gg KG9wdGlvbmFsLCBhbmQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSBQQVRIKQ0KPiANCj4gVGhp cyBkb2VzIG5vdCBzdXBwb3J0IHRoZSBjYXNlIHdoZXJlIHlvdSB3YW50IHRvIG92ZXJyaWRlIHJ1 bm5pbmcgdGhlIHByb2dyYW0gZnJvbSB0aGUgYm9hcmQgdGVzdCBkaXIgKHVzaW5nIGFuIGFsdGVy bmF0ZSBsb2NhdGlvbikuDQo+IEhvd2V2ZXIsIHRoYXQgY2FzZSBjYW4gYmUgaGFuZGxlZCBieSBu b3QgdXNpbmcgZ2V0X3Byb2dyYW1fcGF0aCwgYW5kIGRvaW5nIHRoZSBjaGVjayBkaXJlY3RseSB1 c2luZyBzb21ldGhpbmcgbGlrZSB0aGlzOg0KPiBpZiBjbWQgInRlc3QgLXggJEZVTkNUSU9OQUxf WFhYX1BST0dSQU1fRk9PX1BBVEgiIDsgdGhlbg0KPiAgICAgcmVwb3J0ICIkRlVDVElPTkFMX1hY WF9QUk9HUkFNX0ZPT19QQVRIIC4uLiINCj4gZWxzZQ0KPiAgICAuLi4gZmFsbCBiYWNrIHRvIHNv bWUgb3RoZXIgc2VhcmNoIHBhdGgsIG9yIHJlcG9ydCBmYWlsdXJlIC4uLg0KPiBmaQ0KPiANCj4g V2hhdCBkbyB5b3UgdGhpbms/DQo+ICAtLSBUaW0NCj4gDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4g VmVua2F0YS4NCj4gPg0KPiA+DQo+ID4gPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g PkZyb206IEZ1ZWdvIDxmdWVnby1ib3VuY2VzQGxpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmc+IE9u IEJlaGFsZiBPZg0KPiA+ID5UaW0uQmlyZEBzb255LmNvbQ0KPiA+ID5TZW50OiAwMiBTZXB0ZW1i ZXIgMjAyMSAwMDo0MA0KPiA+ID5Ubzogbmd1eWVuIGRhdCB0aG8o77y077yz77yk77y2IO+8pe+9 ju+9h+OAgO+8kSkgPHRobzEubmd1eWVuZGF0QHRvc2hpYmEuY28uanA+DQo+ID4gPkNjOiBmdWVn b0BsaXN0cy5saW51eGZvdW5kYXRpb24ub3JnDQo+ID4gPlN1YmplY3Q6IFJlOiBbRnVlZ29dIFtQ QVRDSCA0LzRdIHJ0OiBzZWFyY2ggZm9yIHRoZSBiaW5hcnkgaWYgdGhlDQo+ID4gPmJ1aWxkIHBo YXNlIGlzIHNraXBwZWQNCj4gPiA+DQo+ID4gPk9LIC0gSSBoYXZlIGNvbXBsZXRlZCB3b3JrIG9u IGEgbmV3IGZ1bmN0aW9uIHRvIHN1cHBvcnQgdGhlIGZlYXR1cmUgeW91IGRlc2lyZS4NCj4gPiA+ DQo+ID4gPkl0IGlzIGNhbGxlZCAnZ2V0X3Byb2dyYW1fcGF0aCcsIGFuZCBpdCBpcyBkb2N1bWVu dGVkIGhlcmU6DQo+ID4gPmh0dHA6Ly9mdWVnb3Rlc3Qub3JnL3dpa2kvZnVuY3Rpb25fZ2V0X3By b2dyYW1fcGF0aA0KPiA+ID4NCj4gPiA+UGxlYXNlIGNoZWNrIG91dCB0aGlzIGZ1bmN0aW9uLCBh bmQgc2VlIGlmIGl0IGRvZXMgd2hhdCB5b3Ugd291bGQgbGlrZS4NCj4gPiA+SSBoYXZlIGFsc28g Y3JlYXRlZCBhIHRlc3QgKEZ1bmN0aW9uYWwuZnVlZ29fZnVuY3Rpb25fZ3BwX2NoZWNrKSB0aGF0 DQo+ID4gPnRlc3RzIGdldF9wcm9ncmFtX3BhdGgsIHRvIHZlcmlmeSB0aGF0IGl0IHdvcmtzIGNv cnJlY3RseS4NCj4gPiA+UGxlYXNlIHRyeSB0aGlzIHRlc3QgaW4geW91ciBlbnZpcm9ubWVudCBh bmQgbGV0IG1lIGtub3cgaWYgeW91DQo+ID4gPmVuY291bnRlciBhbnkgcHJvYmxlbXMuDQo+ID4g Pg0KPiA+ID5BbHNvLCBwbGVhc2Ugbm90ZSB0aGF0IEkgaGF2ZSBhZGRlZCBhZGRpdGlvbmFsIGZ1 bmN0aW9uYWxpdHkgdG8gdGhlDQo+ID4gPnJlcG9ydCBhbmQgcmVwb3J0X2FwcGVuZCBmdW5jdGlv bnMsIHRvIGNkIHRvIHRoZSB0ZXN0IGRpcmVjdG9yeSBvbg0KPiA+ID50aGUgYm9hcmQNCj4gPiA+ KCRCT0FSRF9URVNURElSL2Z1ZWdvLiRURVNURElSKSBhdXRvbWF0aWNhbGx5LCBhcyBwYXJ0IG9m IGV2ZXJ5IGNhbGwNCj4gPiA+dG8gdGhvc2UgZnVuY3Rpb25zLg0KPiA+ID4NCj4gPiA+VGhpcyBt ZWFucyB0aGF0IHdlIGNhbiByZW1vdmUgdGhhdCAnY2QnIG9wZXJhdGlvbiBmcm9tIGEgbG90IG9m DQo+ID4gPnJlcG9ydCgpIGFuZCByZXBvcnRfYXBwZW5kKCkgY2FsbHMuDQo+ID4gPg0KPiA+ID5J IGFzc3VtZSB0aGF0IGJlY2F1c2UgdGhlIFBST0dSQU1feHh4IHZhcmlhYmxlIHdpbGwgaGF2ZSBh IGZ1bGwgcGF0aCwNCj4gPiA+dGhlIGNkIGlzIG5vIGxvbmdlciByZXF1aXJlZCBpbiB0ZXN0cyB0 aGF0IHVzZSB0aGlzIGFzIHdlbGwuICBJDQo+ID4gPnRob3VnaHQgaXQgc2FmZXIsIHNpbmNlIHlv dSBtaWdodCBiZSBtb2RpZnlpbmcgdGhlIHJlcG9ydCgpIGxpbmVzIGZvcg0KPiA+ID5tdWx0aXBs ZSB0ZXN0cywgdG8gc2V0IHRoZSBkZWZhdWx0IHdvcmtpbmcgZGlyZWN0b3J5LiAgSWYgbmVlZGVk LCB5b3UNCj4gPiA+Y2FuIG5vdyByZW1vdmUgdGhlICJjZCAkQk9BUkRfVEVTVERJUi9mdWVnby4k VEVTVERJUiIgY29tbWFuZCBmcm9tIGFueSB0ZXN0cyB5b3UgbW9kaWZ5Lg0KPiA+ID4NCj4gPiA+ VGhpcyBzb2x2ZXMgdGhlIHByb2JsZW0gdGhhdCB5b3VyIHBhdGNoIG9yaWdpbmFsbHkgYWRkcmVz c2VkLCBidXQgSQ0KPiA+ID5oYXZlIGEgbmFnZ2luZyBmZWVsaW5nIHRoYXQgdGhlIGhpZ2hlciBs ZXZlbCBjb25jZXB0IG9mIGluc3RhbGxpbmcNCj4gPiA+cHJlLWJ1aWx0IHBhY2thZ2VzIGFzIHBh cnQgb2YgYm9hcmQgcHJvdmlzaW9uaW5nIG1pZ2h0IGJlIGFkZHJlc3NlZCBpbiBhbm90aGVyIHdh eS4NCj4gPiA+DQo+ID4gPkFyZSB5b3UgZmFtaWxpYXIgd2l0aCB0aGUgJ2JpbmFyeSBwYWNrYWdl cycgZmVhdHVyZSBvZiBGdWVnbz8gIFRoZXJlDQo+ID4gPmlzIGEgdG9vbCB0byBwcmUtYnVpbGQg YmluYXJ5IHBhY2thZ2VzIGZvciBhIGJvYXJkLCBjYWxsZWQNCj4gPiA+ZnVlZ28tY29yZS9zY3Jp cHRzL21ha2VfY2FjaGUuc2ggVGhpcyBpcyB1c2VkIHRvIGNyZWF0ZSBhIHNldCBvZg0KPiA+ID5i aW5hcnkgcGFja2FnZXMgKGFsc28gY2FsbGVkICd0YXJnZXQgcGFja2FnZXMnKSB0aGF0IGNhbiBi ZSBpbnN0YWxsZWQgc2VwYXJhdGUgZnJvbSBGdWVnbyB0ZXN0IGV4ZWN1dGlvbi4NCj4gPiA+DQo+ ID4gPlRoaXMgaXMgYSBmZWF0dXJlIHRoYXQgd2FzIHVuZGVyIGRldmVsb3BtZW50IGZvciBzb21l IHRpbWUsIGFuZCB0aGVuDQo+ID4gPmdvdCBwdXQgb24gdGhlIGJhY2tidXJuZXIuICBQbGVhc2Ug c2VlIHRoZSBwYWdlOg0KPiA+ID5odHRwOi8vZnVlZ290ZXN0Lm9yZy93aWtpL1RhcmdldF9QYWNr YWdlcy4NCj4gPiA+DQo+ID4gPlRoZXNlIHBhY2thZ2VzIGFyZSBpbnRlbmRlZCB0byByZXBsYWNl IHRoZSAnYnVpbGQnIGFuZCAnZGVwbG95Jw0KPiA+ID5waGFzZXMgb2YgYSB0ZXN0LCB3aGVuIHRo ZXkgYXJlIHVzZWQuICBUaGUgcGFja2FnZSBjb250ZW50cyBhcmUNCj4gPiA+KHVzdWFsbHkpIGlu c3RhbGxlZCByZWxhdGl2ZSB0byAkQk9BUkRfVEVTVERJUi9mdWVnby4kVEVTVERJUiwgYnV0IGl0 DQo+ID4gPmlzIHBvc3NpYmxlIHRvIGluc3RhbGwgdGhlbSBzb21ld2hlcmUgZWxzZSAoZS5nLiBn bG9iYWxseSB1bmRlciBzYXkNCj4gPiA+L29wdC90ZXN0L2Z1ZWdvKQ0KPiA+ID4NCj4gPiA+T25l IGlkZWEgZm9yIHRoaXMsIHdhcyB0byBoYXZlIHByZS1idWlsdCBiaW5hcnkgcGFja2FnZXMgZm9y IHRlc3RzIG9uDQo+ID4gPmEgY2VudHJhbCBzZXJ2ZXIsIHNvIHRoYXQgc29tZW9uZSBjb3VsZCBy dW4gRnVlZ28gYW5kIGl0cyB0ZXN0cw0KPiA+ID53aXRob3V0IGhhdmluZyB0byBpbnN0YWxsIGEg dG9vbGNoYWluIGZvciBhIGJvYXJkIGF0IGFsbC4NCj4gPiA+DQo+ID4gPkl0IHNvdW5kcyBsaWtl IHlvdSBhcmUgZG9pbmcgc29tZXRoaW5nIHNpbWlsYXIgZm9yIGludGVncmF0aW9uIHdpdGgNCj4g PiA+TEFWQSBhbmQvb3Iga2VybmVsY2kuDQo+ID4gPih1c2luZyBwcmUtaW5zdGFsbGVkIHRlc3Qg cHJvZ3JhbXMsIGFuZCBza2lwcGluZyB0aGUgJ2J1aWxkJyBhbmQNCj4gPiA+J2RlcGxveScgc3Rl cHMuKQ0KPiA+ID4NCj4gPiA+SSdkIGxpa2UgdG8gZ2V0IG1vcmUgZGV0YWlscyBhYm91dCB3aGF0 IHlvdSBhcmUgZG9pbmcsIHRvIHBvc3NpYmx5DQo+ID4gPmNvbnNvbGlkYXRlIHRoZXNlIGZlYXR1 cmVzIGFuZCBhdm9pZCBmcmFnbWVudGluZyB0aGUgY29kZS4NCj4gPiA+IC0tIFRpbQ0KPiA+ID4N Cj4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+IEZyb206IHRobzEubmd1 eWVuZGF0QHRvc2hpYmEuY28uanAgPHRobzEubmd1eWVuZGF0QHRvc2hpYmEuY28uanA+DQo+ID4g Pj4NCj4gPiA+PiBEZWFyIFRpbSwNCj4gPiA+Pg0KPiA+ID4+ID4gTGV0IG1lIGtub3cgd2hhdCB5 b3UgdGhpbmsuICBJIGhhZCBob3BlZCB0byBwcm90b3R5cGUgc29tZXRoaW5nDQo+ID4gPj4gPiB0 b2RheSwgYnV0IHJhbiBvdXQgb2YgdGltZSB3b3JraW5nIG9uIG90aGVyIGlzc3Vlcy4gIEknbGwg c2VlDQo+ID4gPj4gPiB3aGF0IEkgY2FuDQo+ID4gPj4gd2hpcCB1cCwgUGxlYXNlIGxldCBtZSBr bm93IGlmIHlvdSBzZWUgYW55IHByb2JsZW1zIHdpdGggdGhpcw0KPiA+ID4+IGFwcHJvYWNoLiAg SSB0aGluayBpdCBjb3ZlcnMgeW91ciB1c2UgY2FzZS4gIFlvdSB3aWxsIG5lZWQgdG8gaGF2ZQ0K PiA+ID4+IGEgc2VwYXJhdGUNCj4gPiA+bWVjaGFuaXNtIGZvciBza2lwcGluZyB0aGUgYnVpbGQg YW5kIGRlcGxveSBzdGVwcyBmb3IgeW91ciB1c2UgY2FzZQ0KPiA+ID4oYnV0IEZ1ZWdvIHN1cHBv cnRzIHRoaXMgd2l0aCB0aGUgdGVzdCBwaGFzZSBjb250cm9sIG9wdGlvbnMgb2YgZnRjKS4NCj4g PiA+PiBJdCBzb3VuZHMgZ29vZC4NCj4gPiA+PiBXaGVuIHlvdSBmaW5pc2hlZCwgcGxlYXNlIGxl dCBtZSBrbm93LiBJIHdpbGwgdXBkYXRlIHRoaXMgcGF0Y2gNCj4gPiA+PiBmb2xsb3cgeW91cg0K PiA+ID5pZGVhLg0KPiA+ID4+DQo+ID4gPj4gVGhhbmtzLA0KPiA+ID4+IFRobw0KPiA+ID4+DQo+ ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+PiBGcm9tOiBUaW0uQmlyZEBz b255LmNvbSA8VGltLkJpcmRAc29ueS5jb20+DQo+ID4gPj4gU2VudDogRnJpZGF5LCBBdWd1c3Qg MjcsIDIwMjEgMTI6MjggUE0NCj4gPiA+PiBUbzogc2FuZ29ycmluIGRhbmllbCjjgrXjg7PjgrTj g6rjg7Mg44OA44OL44Ko44OrIOKWoe+8s++8t++8o+KXr++8oe+8o++8tCkNCj4gPiA+PiA8ZGFu aWVsLnNhbmdvcnJpbkB0b3NoaWJhLmNvLmpwPg0KPiA+ID4+IENjOiBmdWVnb0BsaXN0cy5saW51 eGZvdW5kYXRpb24ub3JnOyBuZ3V5ZW4gZGF0IHRobyjvvLTvvLPvvKTvvLYg77yl772O772H44CA 77yRKQ0KPiA+ID4+IDx0aG8xLm5ndXllbmRhdEB0b3NoaWJhLmNvLmpwPg0KPiA+ID4+IFN1Ympl Y3Q6IFJFOiBbUEFUQ0ggNC80XSBydDogc2VhcmNoIGZvciB0aGUgYmluYXJ5IGlmIHRoZSBidWls ZA0KPiA+ID4+IHBoYXNlIGlzIHNraXBwZWQNCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4NCj4gPiA+ PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4gPiBGcm9tOiBkYW5pZWwuc2Fu Z29ycmluQHRvc2hpYmEuY28uanANCj4gPiA+PiA+IDxkYW5pZWwuc2FuZ29ycmluQHRvc2hpYmEu Y28uanA+DQo+ID4gPj4gPg0KPiA+ID4+ID4gSGkgVGltLA0KPiA+ID4+ID4NCj4gPiA+PiA+IFRo YW5rcyBhZ2FpbiBmb3IgeW91ciByZXZpZXcuDQo+ID4gPj4gPiBXZSB3aWxsIGZpeCB0aGUgcGF0 Y2ggYW5kIHJlLXNlbmQuDQo+ID4gPj4gPg0KPiA+ID4+ID4gU2VlIG15IGNvbW1lbnRzIGlubGlu ZToNCj4gPiA+PiA+DQo+ID4gPj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g Pj4gPiA+IEZyb206IFRpbS5CaXJkQHNvbnkuY29tIDxUaW0uQmlyZEBzb255LmNvbT4NCj4gPiA+ PiA+ID4gU2VudDogU2F0dXJkYXksIEF1Z3VzdCAyMSwgMjAyMSA1OjE2IEFNDQo+ID4gPj4gPiA+ IFRvOiBzYW5nb3JyaW4gZGFuaWVsKOOCteODs+OCtOODquODsyDjg4Djg4vjgqjjg6sg4pah77yz 77y377yj4pev77yh77yj77y0KQ0KPiA+ID4+ID4gPiA8ZGFuaWVsLnNhbmdvcnJpbkB0b3NoaWJh LmNvLmpwPg0KPiA+ID4+ID4gPiBDYzogZnVlZ29AbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZzsg bmd1eWVuIGRhdCB0aG8o77y077yz77yk77y2IO+8pe+9ju+9h+OAgO+8kQ0KPiA+ID4pDQo+ID4g Pj4gPiA+IDx0aG8xLm5ndXllbmRhdEB0b3NoaWJhLmNvLmpwPg0KPiA+ID4+ID4gPiBTdWJqZWN0 OiBSRTogW1BBVENIIDQvNF0gcnQ6IHNlYXJjaCBmb3IgdGhlIGJpbmFyeSBpZiB0aGUgYnVpbGQN Cj4gPiA+PiA+ID4gcGhhc2UgaXMgc2tpcHBlZA0KPiA+ID4+ID4gPg0KPiA+ID4+ID4gPiA+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4gPiA+ID4gRnJvbTogRGFuaWVsIFNhbmdv cnJpbiA8ZGFuaWVsLnNhbmdvcnJpbkB0b3NoaWJhLmNvLmpwPg0KPiA+ID4+ID4gPiA+DQo+ID4g Pj4gPiA+ID4gRnJvbTogTmd1eWVuIERhdCBUaG8gPHRobzEubmd1eWVuZGF0QHRvc2hpYmEuY28u anA+DQo+ID4gPj4gPiA+ID4NCj4gPiA+PiA+ID4gPiBmdGMgaGFzIHRoZSBhYmlsaXR5IHRvIHNr aXAgdGhlIGJ1aWxkIHBoYXNlIHRvIHVzZSBhDQo+ID4gPj4gPiA+ID4gcHJldmlvdXNseSBidWls dCBiaW5hcnkgb3IgYSBiaW5hcnkgaW5zdGFsbGVkIG9uIHRoZSBib2FyZCdzDQo+ID4gPj4gPiA+ ID4gZmlsZSBzeXN0ZW0gKGUuZy4gYXB0LWdldCBpbnN0YWxsIHJ0LXRlc3RzKS4NCj4gPiA+PiA+ ID4gPg0KPiA+ID4+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE5ndXllbiBEYXQgVGhvIDx0aG8xLm5n dXllbmRhdEB0b3NoaWJhLmNvLmpwPg0KPiA+ID4+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IERhbmll bCBTYW5nb3JyaW4NCj4gPiA+PiA+ID4gPiA8ZGFuaWVsLnNhbmdvcnJpbkB0b3NoaWJhLmNvLmpw Pg0KPiA+ID4+ID4gPiA+IC0tLQ0KPiA+ID4+ID4gPiA+ICB0ZXN0cy9CZW5jaG1hcmsuY3ljbGlj dGVzdC9mdWVnb190ZXN0LnNoICB8IDcgKysrKysrLQ0KPiA+ID4+ID4gPiA+ICB0ZXN0cy9CZW5j aG1hcmsuaGFja2JlbmNoL2Z1ZWdvX3Rlc3Quc2ggICB8IDcgKysrKysrLQ0KPiA+ID4+ID4gPiA+ ICB0ZXN0cy9CZW5jaG1hcmsubWlncmF0ZXRlc3QvZnVlZ29fdGVzdC5zaCB8IDcgKysrKysrLQ0K PiA+ID4+ID4gPiA+ICB0ZXN0cy9CZW5jaG1hcmsucG1xdGVzdC9mdWVnb190ZXN0LnNoICAgICB8 IDggKysrKysrKy0NCj4gPiA+PiA+ID4gPiAgdGVzdHMvQmVuY2htYXJrLnB0c2VtYXRlc3QvZnVl Z29fdGVzdC5zaCAgfCA4ICsrKysrKystDQo+ID4gPj4gPiA+ID4gdGVzdHMvQmVuY2htYXJrLnNp Z25hbHRlc3QvZnVlZ29fdGVzdC5zaCAgfCA3ICsrKysrKy0NCj4gPiA+PiA+ID4gPiB0ZXN0cy9C ZW5jaG1hcmsuc2lnd2FpdHRlc3QvZnVlZ29fdGVzdC5zaCB8IDcgKysrKysrLQ0KPiA+ID4+ID4g PiA+IHRlc3RzL0JlbmNobWFyay5zdnNlbWF0ZXN0L2Z1ZWdvX3Rlc3Quc2ggIHwgNyArKysrKyst DQo+ID4gPj4gPiA+ID4gIHRlc3RzL0Z1bmN0aW9uYWwucGlfdGVzdHMvZnVlZ29fdGVzdC5zaCAg IHwgNyArKysrKystDQo+ID4gPj4gPiA+ID4gIDkgZmlsZXMgY2hhbmdlZCwgNTYgaW5zZXJ0aW9u cygrKSwgOSBkZWxldGlvbnMoLSkNCj4gPiA+PiA+ID4gPg0KPiA+ID4+ID4gPiA+IGRpZmYgLS1n aXQgYS90ZXN0cy9CZW5jaG1hcmsuY3ljbGljdGVzdC9mdWVnb190ZXN0LnNoDQo+ID4gPj4gPiA+ ID4gYi90ZXN0cy9CZW5jaG1hcmsuY3ljbGljdGVzdC9mdWVnb190ZXN0LnNoDQo+ID4gPj4gPiA+ ID4gaW5kZXggNzRkOWQyNC4uZTcwNzBkZCAxMDA3NTUNCj4gPiA+PiA+ID4gPiAtLS0gYS90ZXN0 cy9CZW5jaG1hcmsuY3ljbGljdGVzdC9mdWVnb190ZXN0LnNoDQo+ID4gPj4gPiA+ID4gKysrIGIv dGVzdHMvQmVuY2htYXJrLmN5Y2xpY3Rlc3QvZnVlZ29fdGVzdC5zaA0KPiA+ID4+ID4gPiA+IEBA IC0yNCw1ICsyNCwxMCBAQCBmdW5jdGlvbiB0ZXN0X2RlcGxveSB7ICB9DQo+ID4gPj4gPiA+ID4N Cj4gPiA+PiA+ID4gPiAgZnVuY3Rpb24gdGVzdF9ydW4gew0KPiA+ID4+ID4gPiA+IC0gICAgcmVw b3J0ICJjZCAkQk9BUkRfVEVTVERJUi9mdWVnby4kVEVTVERJUjsgLi9jeWNsaWN0ZXN0DQo+ID4g PiRCRU5DSE1BUktfQ1lDTElDVEVTVF9QQVJBTVMiDQo+ID4gPj4gPiA+ID4gKyAgICBpZiBbIC1m ICRCT0FSRF9URVNURElSL2Z1ZWdvLiRURVNURElSL2N5Y2xpY3Rlc3QgXTsgdGhlbg0KPiA+ID4+ ID4gPiBUaGlzIHRlc3QgKFsgLWYpIHdvbid0IHdvcmsgb24gYSByZW1vdGUgYm9hcmQuICBUaGlz IGlzIHJ1bm5pbmcNCj4gPiA+PiA+ID4gb24gdGhlIGhvc3QgbWFjaGluZSwgd2hpY2ggaGFzIGEg ZGlmZmVyZW50IGZpbGVzeXN0ZW0gdGhhbiB0aGUNCj4gPiA+PiA+ID4gZGV2aWNlIHVuZGVyDQo+ ID4gPnRlc3QsIHVubGVzcyB5b3UgYXJlIHJ1bm5pbmcgdXNpbmcgdGhlICdsb2NhbCcgVFJBTlNQ T1JULg0KPiA+ID4+ID4gPg0KPiA+ID4+ID4gPiBUaGVyZSBzaG91bGQgYmUgYSBjbWQoKSBpbiBo ZXJlIHNvbWV3aGVyZSB0byBwZXJmb3JtIHRoaXMgdGVzdA0KPiA+ID4+ID4gPiBvbiB0aGUNCj4g PiA+Ym9hcmQncyBmaWxlc3lzdGVtLg0KPiA+ID4+ID4NCj4gPiA+PiA+IFllcywgeW91IGFyZSB0 b3RhbGx5IHJpZ2h0LiBTb3JyeSBmb3Igbm90IGNhdGNoaW5nIHRoYXQgcHJvYmxlbQ0KPiA+ID4+ ID4gZHVyaW5nIG15DQo+ID4gPnJldmlldy4NCj4gPiA+PiA+DQo+ID4gPj4gPiA+IEknbSBub3Qg c3VyZSBJIGZvbGxvdyB0aGlzLiAgV2hhdCBkb2VzIHRoZSB0ZXN0X2RlcGxveSgpIGZ1bmN0aW9u IGxvb2sgbGlrZT8NCj4gPiA+PiA+ID4gVW5kZXIgd2hhdCBjaXJjdW1zdGFuY2VzIHdvdWxkIGN5 Y2xpY3Rlc3Qgbm90IGJlIHByZXNlbnQgaW4gdGhlDQo+ID4gPj4gPiA+IGJvYXJkcw0KPiA+ID4k Qk9BUkRfVEVTVERJUi9mdWVnby4kVEVTVERJUiBkaXJlY3Rvcnk/DQo+ID4gPj4gPg0KPiA+ID4+ ID4gV2Ugd2FudCB0byBydW4gZnVlZ28gbmF0aXZlbHkgYmVjYXVzZSBpdCBpcyBlYXNpZXIgdG8g cnVuIGl0IG9uDQo+ID4gPj4gPiBjZXJ0YWluDQo+ID4gPnNjZW5hcmlvcyBzdWNoIGFzIExBVkEg Ym9hcmQgZmFybXMgYW5kIGN1c3RvbSBjbG91ZCBpbWFnZXMuDQo+ID4gPj4gPiBXZSBhbHNvIHdh bnQgdG8gdXNlIHBhY2thZ2VkIHZlcnNpb25zIG9mIHRoZSB0ZXN0cyBhbmQgZG8gbm90DQo+ID4g Pj4gPiBzdG9yZSBhbnkgdGVzdCB0YXJiYWxsIGluIG91ciByZXBvc2l0b3JpZXMuIFNvIHRoZSBP UyBpbWFnZSB3aWxsDQo+ID4gPj4gPiBhbHJlYWR5IGhhdmUgdGhlDQo+ID4gPnRlc3RzIHRoZXJl IGFuZCB0aGVyZWZvcmUgd2Ugd2lsbCBza2lwIHRoZSBidWlsZC9kZXBsb3kgcGhhc2VzLg0KPiA+ ID4+ID4NCj4gPiA+PiA+ID4gSXQgc2VlbXMgbGlrZSB0aGlzIGNvZGUgc2hvdWxkIGJlIGNvdXBs ZWQgd2l0aCBjb2RlIHRoYXQNCj4gPiA+PiA+ID4gZGV0ZWN0cyBpZiB0aGUgcHJvZ3JhbSBpcyBh bHJlYWR5IHByZXNlbnQsIGFuZCBpZiBzbyAxKSBhdm9pZHMNCj4gPiA+PiA+ID4gZGVwbG95aW5n IGl0IGFuZA0KPiA+ID4+ID4NCj4gPiA+PiA+IFdlIGFyZSBza2lwcGluZyB0aGUgYnVpbGQgYW5k IGRlcGxveSBwaGFzZSBvbiBwdXJwb3NlIGZyb20gZnRjLg0KPiA+ID4+ID4NCj4gPiA+PiA+ID4g MikgdGhlbiB1c2VzIGl0IGZvciB0aGUgdGVzdC4NCj4gPiA+PiA+ID4NCj4gPiA+PiA+ID4gU29t ZXRoaW5nIGxpa2UgdGhpczoNCj4gPiA+PiA+ID4gdGVzdF9kZXBsb3kgew0KPiA+ID4+ID4gPiAg IGlzX29uX3RhcmdldF9wYXRoIGN5Y2xpY3Rlc3QgUFJPR1JBTV9DWUNMSUNURVNUDQo+ID4gPj4g PiA+ICAgaWYgWyAteiAiJFBST0dSQU1fQ1lDTElDVEVTVCIgXSA7IHRoZW4NCj4gPiA+PiA+ID4g ICAgICBwdXQgY3ljbGljdGVzdCAkQk9BUkRfVEVTVERJUi9mdWVnby4kVEVTVERJUg0KPiA+ID4+ ID4gPg0KPiA+ID4+ID4gPiBQUk9HUkFNX0NZQ0xJQ1RFU1Q9JEJPQVJEX1RFU1RESVIvZnVlZ28u JFRFU1RESVIvY3ljbGljdGVzdA0KPiA+ID4+ID4gPiAgZmkNCj4gPiA+PiA+ID4gICBleHBvcnQg UFJPR1JBTV9DWUNMSUNURVNUDQo+ID4gPj4gPiA+IH0NCj4gPiA+PiA+ID4NCj4gPiA+PiA+ID4g YW5kIHRoZW4gaW4gdGVzdF9ydW46DQo+ID4gPj4gPiA+ICAgaWYgWyAtbiAiJFBST0dSQU1fQ1lD TElDVEVTVCIgXSA7IHRoZW4NCj4gPiA+PiA+ID4gICAgIHJlcG9ydCAiJFBST0dSQU1fQ1lDTElD VEVTVCAkQkVOQ0hNQVJLX0NZQ0xJQ1RFU1RfUEFSQU1TIg0KPiA+ID4+ID4gPiAgIGVsc2UNCj4g PiA+PiA+ID4gICAgIGFib3J0X2pvYiAiY3ljbGljdGVzdCBpcyBub3QgZm91bmQgb24gdGhlIHRh cmdldCINCj4gPiA+PiA+ID4gICBmaQ0KPiA+ID4+ID4gPg0KPiA+ID4+ID4gPiBNYXliZSBJJ20g bm90IHVuZGVyc3RhbmRpbmcgdGhlIHVzZSBjYXNlIGhlcmUuICBJcyB0aGlzIGZvcg0KPiA+ID4+ ID4gPiBydW5uaW5nIGEgcHJlLWV4aXN0aW5nIHByb2dyYW0gb24gdGhlIGJvYXJkLCBvciBhIHBy b2dyYW0gdGhhdA0KPiA+ID4+ID4gPiB3YXMgYWxyZWFkeSBwbGFjZWQgaW4gdGhlIEJPQVJEX1RF U1RESVIgZGlyZWN0b3J5IChlLmcuIGZyb20gYQ0KPiA+ID4+ID4gPiBwcmV2aW91cyBydW4gb2YN Cj4gPiA+PiB0aGUgdGVzdCk/DQo+ID4gPj4gPg0KPiA+ID4+ID4gQSBwcmUtZXhpc3RpbmcgcHJv Z3JhbSBvbiB0aGUgYm9hcmQgKGUuZy4gcHJldmlvdXNseSBpbnN0YWxsZWQpLg0KPiA+ID4+ID4N Cj4gPiA+PiA+ID4gSWYgd2UgaGF2ZSB0aGlzIHBhdHRlcm4gYSBsb3QsIHRoZW4gbWF5YmUgaXQg d291bGQgbWFrZSBzZW5zZQ0KPiA+ID4+ID4gPiB0byBtYWtlIHRoZQ0KPiA+ID5vcHRpb25hbCBk ZXBsb3kgY29kZSAgYSBjb3JlIGZ1bmN0aW9uLCBsaWtlOg0KPiA+ID4+ID4gPiAgICBwdXRfaWZf cHJvZ3JhbV9ub3RfcHJlc2VudCBjeWNsaWN0ZXN0DQo+ID4gPj4gPg0KPiA+ID4+ID4gV2UgYXJl IHNraXBwaW5nIHRoZSBidWlsZC9kZXBsb3kgcGhhc2UgdXNpbmcgZnRjLiBXaGF0IGRvIHlvdSB0 aGluaz8NCj4gPiA+Pg0KPiA+ID4+IE9LLCBiYXNlZCBvbiB0aGF0LCBJIHRoaW5rIEknZCBsaWtl IHRvIHN0cnVjdHVyZSB0aGlzIGFzIGZvbGxvd3M6DQo+ID4gPj4NCj4gPiA+PiBJJ2QgbGlrZSB0 byBhZGQgYSBuZXcgY29yZSBmdW5jdGlvbiBjYWxsZWQgJ2dldF9wcm9ncmFtX3BhdGgnDQo+ID4g Pj4NCj4gPiA+PiBUaGUgaW50ZW50IGlzIHRoYXQgY29kZSBpbiBhIHRlc3RfcnVuIGZ1bmN0aW9u IGNhbiB1c2UgdGhhdCB0byBmaW5kDQo+ID4gPj4gdGhlIGNvcnJlY3QgcGF0aCB0byBleGVjdXRl IHRoZSB0ZXN0IHByb2dyYW0gKHBvc3NpYmx5IGJhc2VkIG9uDQo+ID4gPj4gcGVyLWxhYg0KPiA+ ID5wb2xpY3kpLg0KPiA+ID4+DQo+ID4gPj4gVGhlIHNlcXVlbmNlIGluIHRlc3RfcnVuIGZ1bmN0 aW9uIHdvdWxkIGxvb2sgbGlrZSB0aGlzOg0KPiA+ID4+DQo+ID4gPj4gICBnZXRfcHJvZ3JhbV9w YXRoIGN5Y2xpY3Rlc3QNCj4gPiA+PiAgIHJlcG9ydCAiJFBST0dSQU1fQ1lDTElDVEVTVCAkQVJH UyINCj4gPiA+Pg0KPiA+ID4+IFRoZXJlIHdvdWxkIGJlIG5vIGNvbmRpdGlvbmFscyBpbiB0aGUg Y29kZSBmb3IgaW5kaXZpZHVhbCB0ZXN0cyAtDQo+ID4gPj4ganVzdCB0aGlzDQo+ID4gPmFkZGl0 aW9uYWwgY2FsbCB0byBnZXRfcHJvZ3JhbV9wYXRoLg0KPiA+ID4+DQo+ID4gPj4gVGhlICdnZXRf cHJvZ3JhbV9wYXRoJyBmdW5jdGlvbiB3b3VsZCBoYXZlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25h bGl0eToNCj4gPiA+PiAoaW4gcHNldWRvLWNvZGUsIHdpdGggJ2N5Y2xpY3Rlc3QnIHVzZWQgYXMg YSBwbGFjZWhvbGRlciBuYW1lIGZvcg0KPiA+ID4+IGFuIGFyYml0cmFyeQ0KPiA+ID5wcm9ncmFt IG5hbWUpOg0KPiA+ID4+DQo+ID4gPj4gaWYgaXNfb25fdGFyZ2V0X3BhdGggY3ljbGljdGVzdCA7 IHRoZW4NCj4gPiA+PiAgICBQUk9HUkFNX0NZQ0xJQ1RFU1Q9KHRoZSB0YXJnZXQgcGF0aCBmb3Vu ZCkgZWxzaWYgY21kICJ0ZXN0IC1mDQo+ID4gPiRCT0FSRF9URVNURElSL2Z1ZWdvLiRURVNURElS L2N5Y2xpY3Rlc3QiIDsgdGhlbg0KPiA+ID4+ICAgIFBST0dSQU1fQ1lDTElDVEVTVD0kQk9BUkRf VEVTVERJUi9mdWVnby4kVEVTVERJUi9jeWNsaWN0ZXN0DQo+ID4gPj4gZWxzZQ0KPiA+ID4+ICAg IGFib3J0am9iICJjeWNsaWN0ZXN0IHdhcyBub3QgZm91bmQiDQo+ID4gPj4NCj4gPiA+PiBJZiB0 aGUgZnVuY3Rpb24gc3VjY2VlZHMsIHRoZW4gaXQgc2V0cyB0aGUgdmFsdWUgb2YNCj4gPiA+PiBQ Uk9HUkFNX0NZQ0xJQ1RFU1QgdG8gdGhlDQo+ID4gPnBhdGggb24gdGhlIGJvYXJkIHRvIGJlIHVz ZWQgdG8gZXhlY3V0ZSBjeWNsaWN0ZXN0Lg0KPiA+ID4+DQo+ID4gPj4gVGhpcyBzaG91bGQgaGFu ZGxlIHRoZSBmb2xsb3dpbmcgY2FzZXM6DQo+ID4gPj4gIC0gY3ljbGljdGVzdCBpcyBvbiB0aGUg Ym9hcmQgKG9uIHRoZSBQQVRIKSBmcm9tIGV4dGVybmFsDQo+ID4gPj4gcHJlLWluc3RhbGxhdGlv biAob3V0c2lkZSBvZiBGdWVnbykNCj4gPiA+PiAgLSBjeWNsaWN0ZXN0IGlzIG9uIHRoZSBib2Fy ZCBpbiB0aGUgdGVzdCBkaXJlY3RvcnkgKGZyb20gRnVlZ28ncyBkZXBsb3ksIG9yIGZyb20NCj4g PiA+PiAgIGEgcHJldmlvdXMgdGVzdCBpbnZvY2F0aW9uIHRoYXQgZGlkIG5vdCByZW1vdmUgdGhl IHRlc3QNCj4gPiA+PiBkaXJlY3RvcnkpDQo+ID4gPj4NCj4gPiA+PiBUaGUgZnVuY3Rpb24gZ2V0 X3Byb2dyYW1fcGF0aCBjb3VsZCBiZSBleHRlbmRlZCBpbiB0aGUgZnV0dXJlIHRvDQo+ID4gPj4g aW1wbGVtZW50IG90aGVyIHByb2dyYW0gc2VhcmNoIHBvbGljaWVzLiAgVGhlIHBvbGljeSBhYm92 ZSBpcyAidXNlDQo+ID4gPj4gdGVzdCBwcm9ncmFtIGFscmVhZHkgb24gdGhlIGJvYXJkLCBpZiBm b3VuZCwgdGhlbiB0aGUgb25lIGluc3RhbGxlZA0KPiA+ID4+IGJ5IEZ1ZWdvLiIgIE90aGVyIHBv bGljaWVzIG1pZ2h0IGJlICJ1c2UgdGhlIHRlc3QgcHJvZ3JhbSBpbnN0YWxsZWQNCj4gPiA+PiBi eSBGdWVnbywgdGhlbiBvbmUgYWxyZWFkeSBvbiB0aGUgYm9hcmQsIGlmIHByZXNlbnQiLCBvciAi bGV0IHRoZQ0KPiA+ID4+IHJlcG9ydCgpIGZ1bmN0aW9uDQo+ID4gPmZpZ3VyZSBvdXQgaWYgdGhl IHByb2dyYW0gaXMgcHJlc2VudCBvciBub3QgaW4gdGhlIHRlc3QgZGlyZWN0b3J5Ig0KPiA+ID4o dGhpcyBpcyBGdWVnbydzIGN1cnJlbnQgcG9saWN5KS4gIEJ1dCBleHRlbmRpbmcgdGhpcyB0byBz dXBwb3J0DQo+ID4gPm90aGVyIHBvbGljaWVzIChhbmQgYWRkaW5nIHRoZSB0ZXN0IHByb2dyYW0g c2VhcmNoIHBvbGljeSB0byB0aGUgZnVlZ28uY29uZiBmaWxlKSB3aWxsIGJlIGxlZnQgZm9yIGEg ZnV0dXJlIGV4ZXJjaXNlLg0KPiA+ID4+DQo+ID4gPj4gTGV0IG1lIGtub3cgd2hhdCB5b3UgdGhp bmsuICBJIGhhZCBob3BlZCB0byBwcm90b3R5cGUgc29tZXRoaW5nDQo+ID4gPj4gdG9kYXksIGJ1 dCByYW4gb3V0IG9mIHRpbWUgd29ya2luZyBvbiBvdGhlciBpc3N1ZXMuICBJJ2xsIHNlZSB3aGF0 DQo+ID4gPj4gSSBjYW4gd2hpcCB1cCwgUGxlYXNlIGxldCBtZSBrbm93IGlmIHlvdSBzZWUgYW55 IHByb2JsZW1zIHdpdGggdGhpcw0KPiA+ID4+IGFwcHJvYWNoLiAgSSB0aGluayBpdA0KPiA+ID5j b3ZlcnMgeW91ciB1c2UgY2FzZS4gIFlvdSB3aWxsIG5lZWQgdG8gaGF2ZSBhIHNlcGFyYXRlIG1l Y2hhbmlzbSBmb3INCj4gPiA+c2tpcHBpbmcgdGhlIGJ1aWxkIGFuZCBkZXBsb3kgc3RlcHMgZm9y IHlvdXIgdXNlIGNhc2UgKGJ1dCBGdWVnbw0KPiA+ID5zdXBwb3J0cyB0aGlzIHdpdGggdGhlIHRl c3QgcGhhc2UgY29udHJvbCBvcHRpb25zIG9mIGZ0YykuDQo+ID4gPj4gIC0tIFRpbQ0KPiA+ID4N Cj4gPiA+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4g PiA+RnVlZ28gbWFpbGluZyBsaXN0DQo+ID4gPkZ1ZWdvQGxpc3RzLmxpbnV4Zm91bmRhdGlvbi5v cmcNCj4gPiA+aHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGlu Zm8vZnVlZ28NCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCj4gRnVlZ28gbWFpbGluZyBsaXN0DQo+IEZ1ZWdvQGxpc3RzLmxpbnV4Zm91bmRhdGlvbi5v cmcNCj4gaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8v ZnVlZ28NCg==