RE: Suggestion needed for a case of Lucene Migration with TokenStream
"Saha, Rajib" <[email protected]> Tue, 29 Apr 2025 11:44:43 +0000
| Newsgroups | gmane.comp.jakarta.lucene.user |
|---|---|
| Message-ID | <DB9PR02MB83716CC7758C36A8A543400790802@DB9PR02MB8371.eurprd02.prod.outlook.com> |
SGkgVXdlLA0KDQpJbiBvdXIgcHJvZHVjdCB3ZSBoYXZlIGRpZmZlcmVudCBsZXZlbCBvZiBpbmRl eGluZyBsaWtlIE1ldGFEYXRhL0Z1bGxDb250ZW50IGluZm9ybWF0aW9uIG9mIHRoZSBSZXBvcnRz Lg0KU28sIFJlYnVpbGQgaW5kZXhpbmcgZGVsZXRlcyB0aGUgZXhpc3RpbmcgTHVjZW5lIGluZGV4 IGZpbGVzIGFuZCBkbyBhIGZyZXNoIGluZGV4aW5nIG9mIGFsbCB0aGUgZG9jdW1lbnRzLg0KDQpX aGVuIHdlIGRvIHBoeXNpY2FsbHkgZ29pbmcgdG8gZGlyZWN0b3J5IGFuZCBkZWxldGUgdGhlIEx1 Y2VuZSBJbmRleCBmaWxlcy4gVGhlIFJlYnVpbGQgaW5kZXhpbmcgaXMgd29ya2luZyBmaW5lLg0K QnV0LCBmcm9tIFVJIG9mIHByb2R1Y3Qgd2hlbiB3ZSBhcmUgc2VsZWN0aW5nIGZvciBSZWJ1aWxk IGluZGV4aW5nLCBJbmRleGluZyBpcyBub3QgaGFwcGVuaW5nLg0KDQpJIGFtIGRlYnVnZ2luZyBt b3JlIGZvciBpdC4gSSB3aWxsIHVwZGF0ZSB5b3UgZnVydGhlciBvbiBnZXR0aW5nIGJldHRlciBw aWN0dXJlLiBBcyBvdXIgY29kZSBmb3IgdGhlIEFyZWEgZ29lcyB3aXRoIG11bHRpcGxlIHRhc2tz IGFuZCB0aHJlYWQuIEl0IGlzIHRha2luZyB0aW1lIHRvIGRlYnVnLg0KDQpJIGFtIHN1c3BlY3Rp bmcsIHRoZXJlIG1heSBiZSBzb21lIGxvY2sgaXMgdGhlcmUgaW4gTHVjZW5lIEluZGV4IGZpbGVz LCBkdWUgdG8gb2YgaXQsIGRlbGV0ZSBvZiBMdWNlbmUgaW5kZXggZmlsZXMgYXJlIG5vdCB3b3Jr aW5nIHdpdGggc3RvcHBpbmcgdGhlIHNlcnZpY2UuIEJ1dCwgdGhpcyBpcyBhIGd1ZXNzLiBJbnZl c3RpZ2F0aW9uIGlzIG9uIGZvciBpdC4NCkRvIHlvdSBoYXZlIGFueSBzdXNwZWN0Pw0KDQpSZWdh cmRzDQpSYWppYg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogVXdlIFNjaGlu ZGxlciA8dXdlQHRoZXRhcGhpLmRlPg0KU2VudDogMjggQXByaWwgMjAyNSAxNzo1OQ0KVG86IGph dmEtdXNlckBsdWNlbmUuYXBhY2hlLm9yZw0KU3ViamVjdDogUmU6IFN1Z2dlc3Rpb24gbmVlZGVk IGZvciBhIGNhc2Ugb2YgTHVjZW5lIE1pZ3JhdGlvbiB3aXRoIFRva2VuU3RyZWFtDQoNCkhpLA0K DQp3aGF0IGRvIHlvdSBtZWFuIHdpdGg6ICJCdXQgc2FtZSBjb250ZW50IG9uIHJlYnVpbGRpbmcg dGhlIGluZGV4IGlzIG5vdA0Kd29ya2luZyI/DQoNCkhvdyBkbyB5b3UgcmVidWlsZCB0aGUgaW5k ZXg/IEl0IGlzIG5vdCBlbm91Z2ggdG8ganVzdCByZWFkIGFsbA0KZG9jdW1lbnRzIGFzIHN0b3Jl ZCBmaWVsZHMgYW5kIHJlaW5kZXggdGhlbS4gWW91IG5lZWQgdGhlIG9yaWdpbmFsDQpkb2N1bWVu dCBkYXRhIGFuZCBiYXNpY2FsbHkgcnVuIHRoZW0gdGhvcnVnaCB0aGUgc2FtZSBwaXBlbGluZSB0 aGF0IHlvdQ0KYWxyZWFkeSBoYXZlIChzbyB0aGUgaW5kZXhpbmcgc2hvdWxkIGJlIGRvbmUgYnkg dGhlIHNhbWUgY29kZSB0aGF0DQppbmRleGVzIG5ldyBkb2N1bWVudHMpLiBTbyBJJ2Qgd3JpdGUg c29tZSBjb2RlIHRoYXQgcmVhZHMgdGhlIG9sZCBkYXRhDQooaWYgcG9zc2libGUgZnJvbSBzb3Vy Y2UpIG9yIHJlYWRzIHRoZSBvbGQgaW5kZXggKGlmIGFsbCBpbmZvcm1hdGlvbg0KdGhhdCB3YXMg aW5kZXhlZCBpcyBhdmFpbGFibGUgYXMgc3RvcmVkIGZpZWxkcywgc3ludGhldGljYWxseSBidWls ZHMNCmlucHV0IGRhdGEgZm9yIHRoZSBuZXcgaW5kZXhlciBhbmQgc2VuZHMgaXQgdG8gdGhlIEFQ SSAob3Igd2hhdGV2ZXIgeW91DQpoYXZlIGZvciBpbmRleGluZyBpbiB5b3VyIG5ldyBzeXN0ZW0p Lg0KDQpJZiB5b3UganVzdCBoYXZlIGluY29tcGxldGUgTHVjZW5lIERvY3VtZW50IGluc3RhbmNl cyBmcm9tIHRoZSBvbGRlcg0KTHVjZW5lIGluZGV4LCBJIHRoaW5rIHlvdSdyZSBsb3N0LiBXaGVu IHlvdSBjYW5uDQpJbmRleFJlYWRlci9JbmRleFNlYXJjaGVyLmRvY3VtZW50KCksIHlvdSBvbmx5 IGdldCBzdG9yZWQgZmllbGRzLCAtLSBidXQNCnRoYXQncyBub3QgYWxsIGluZm9ybWF0aW9uIHRo YXQgd2FzIG9yaWdpbmJhbGx5IHVzZWQgZm9yIGluZGV4aW5nLg0KUmVhZGluZyBkb2N1bWVudHMg ZnJvbSBJbmRleFJlYWRlciBhbmQgcGFzc2luZyBpdCB0byBJbmRleFdyaXRlciBkb2VzDQpub3Qg d29yay4gSXQgd29ya3MgZnJvbSB0aGUgQVBJIHBvaW50IG9mIHZpZXcsIGJ1dCB0aGUgZGF0YSBp cyBkaWZmZXJlbnQuDQoNClV3ZQ0KDQpBbSAyOC4wNC4yMDI1IHVtIDEyOjQzIHNjaHJpZWIgU2Fo YSwgUmFqaWI6DQo+IEhpIFV3ZSwNCj4NCj4gVGhhbmsgeW91IGZvciB5b3VyIGRldGFpbGVkIGlu cHV0IGFuZCB2YWx1YWJsZSBhZHZpY2UuIEkgZnVsbHkgdW5kZXJzdGFuZCBhbmQgYWdyZWUgdGhh dCB1cGdyYWRpbmcgZnJvbSBzdWNoIGFuIG9sZCB2ZXJzaW9uIG9mIEx1Y2VuZSBpbnZvbHZlcyBt dWNoIG1vcmUgdGhhbiBqdXN0IHJlc29sdmluZyBjb21waWxhdGlvbiBpc3N1ZXMuDQo+IEJhc2Vk IG9uIHRoZSBsYXRlc3QgTHVjZW5lIHZlcnNpb24sIHdlIGhhdmUgcmVkZXNpZ25lZCBvdXIgcGxh dGZvcm0gYWNjb3JkaW5nbHkgZ29pbmcgdGhyb3VnaCB0aGUgTHVjZW5lIEFQSXMgdXNlZCBhbmQg cmVwbGFjaW5nIGFjY29yZGluZ2x5IHRvIGxhdGVzdC4NCj4NCj4gV2l0aCB0aGVzZSBjaGFuZ2Vz LCBGcmVzaCBjb250ZW50IGluZGV4aW5nIGlzIHdvcmtpbmcgZmluZS4gU2VhcmNoIHJlc3VsdHMg YXJlIGFsc28gY29taW5nIGFzIGV4cGVjdGVkLg0KPiBHcmVhdGx5IGFwcHJlY2lhdGUgeW91ciBl eHBlcnQgZ3VpZGFuY2UsIHRvIGhlbHAgdG8gYnJpbmdpbmcgdGlsbCB0aGlzIHBvaW50Lg0KPg0K PiBCdXQgc2FtZSBjb250ZW50IG9uIHJlYnVpbGRpbmcgdGhlIGluZGV4IGlzIG5vdCB3b3JraW5n Lg0KPiBJIGFtIGRlYnVnZ2luZyB0aGlzIHBhcnQgbm93Lg0KPg0KPiBEbyB5b3UgaGF2ZSBhbnkg c3VnZ2VzdGlvbiBvbiB0aGUgcHJvYmxlbSA/DQo+DQo+IFJlZ2FyZHMNCj4gUmFqaWINCj4NCj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVXdlIFNjaGluZGxlciA8dXdlQHRo ZXRhcGhpLmRlPg0KPiBTZW50OiAyNSBBcHJpbCAyMDI1IDE4OjE5DQo+IFRvOiBqYXZhLXVzZXJA bHVjZW5lLmFwYWNoZS5vcmcNCj4gU3ViamVjdDogUmU6IFN1Z2dlc3Rpb24gbmVlZGVkIGZvciBh IGNhc2Ugb2YgTHVjZW5lIE1pZ3JhdGlvbiB3aXRoIFRva2VuU3RyZWFtDQo+DQo+IEhpLA0KPg0K PiBJJ2QgbGlrZSB0byBtZW50aW9uIHRoZSBmb2xsb3dpbmc6IFlvdSBhcmUgdHJ5aW5nIHRvIHVw Z3JhZGUgTHVjZW5lIGZyb20NCj4gYSByZWFsbHkgYW5jaWVudCB2ZXJzaW9uLiBPZiBjb3Vyc2Us IGJhc2ljIGNvbmNlcHRzIGFyZSBzdGlsbCB0aGUgc2FtZSwNCj4gYnV0IHRoZSBzZXJhY2ggZW5n aW5lIGFuZCBpdHMgQVBJcyBoYXZlIGNoYW5nZWQgZHJhbWF0aWNhbGx5LCBzbyBqdXN0DQo+IHRy eWluZyB0byAiY29tcGlsZSBjb2RlIGFuZCBmaXggcmFuZG9tIHN0dWZmIHVudGlsIGl0IGNvbXBp bGVzIiB3aWxsIG5vdA0KPiBicmluZyB5b3UgdG8gYSB3b3JraW5nIHByb2R1Y3QuIE9uIHRvcCwg aXQgbWF5IG1ha2UgdGhlIHByb2R1Y3Qgd29yc2UNCj4gdGhhbiBiZWZvcmUgdGhlIHVwZGF0ZS4N Cj4NCj4gVG8gZG8gdGhlIHVwZ3JhZGUgY29ycmVjdGx5LCBpdCBpcyByZWNvbW1lbmRlZCB0byBo YXZlIHNvbWVib2R5DQo+IGF2YWlsYWJsZSAoaWRlYWxseSB0aGUgcGVyc29uIHdobyB3cm90ZSB0 aGUgY29kZSBvcmlnaW5hbGx5KSBhbmQgdGhlbiBnbw0KPiB0aG91Z2ggaXQgbGluZS1ieSBsaW5l IGFuZCByZXdyaXRlIGl0LiBJIGFtIGV4cGxpY2l0ZWx5IG1lbnRpb25pbmcNCj4gInJld3JpdGUi IGJlY2F1c2UgdGhhdCdzIHdoYXQgeW91IHNob3VsZCBkbyEgSWYgeW91IGRvbid0IGhhdmUgYSBw ZXJzb24NCj4gdGhhdCB1bmRlcnRzdGFuZHMgTHVjZW5lIGVub3VnaCwgSSdkIHN1Z2dlc3QgdG8g Z2V0IGhlbHAgZnJvbSBvdXRzaWRlLg0KPiBZb3UgbmVlZCB0byB1bmRlcnN0YW5kIGV2ZXJ5IGxp bmUgb2YgY29kZSB3aGVuIHJld3JpdGluZyBpdC4gSW4gYWRkaXRpb24NCj4gdGhlcmUgYXJlIG1h bnkgbmV3IGZlYXR1cmVzIHRoYXQgbWFrZSBhbGwgdGhhdCBzZXBjaWFsIGNhc2VzIGxpa2UNCj4g UGF5TG9hZHMgb24gVG9rZW5zdHJlYW1zIG9ic29sZXRlLiBJJ2Qgbm90IHJlY29tbWVuZCB0byB1 c2Ugc29tZXRoaW5nDQo+IHBheWxvYWRzIG9uIHRlcm1zIG5vd2FkYXlzLg0KPg0KPiBVd2UNCj4N Cj4gQW0gMjQuMDQuMjAyNSB1bSAxMjoyOSBzY2hyaWViIE1pa2hhaWwgS2hsdWRuZXY6DQo+PiBS aWdodC4gVGV4dEZpZWxkLlRZUEVfTk9UX1NUT1JFRCBzaG91bGQgYmUgdXNlZCB0aGVuLg0KPj4N Cj4+IE9uIFRodSwgQXByIDI0LCAyMDI1IGF0IDEwOjM34oCvQU0gU2FoYSwgUmFqaWIgPHJhamli LnNhaGFAc2FwLmNvbS5pbnZhbGlkPg0KPj4gd3JvdGU6DQo+Pg0KPj4+IFRoYW5rcyBNaWtoYWls IGZvciB0aGUgc3VnZ2VzdGlvbi4NCj4+PiBOb3cgdGhlIHByZXZpb3VzIGV4Y2VwdGlvbiBoYXMg Z29uZS4gQnV0IGEgbmV3IGV4Y2VwdGlvbiBoYXMgY29tZSBmcm9tDQo+Pj4gRmllbGQuamF2YS4N Cj4+PiBIZXJlIGJlbG93IGFyZSB0aGUgZXhjZXB0aW9uIGRldGFpbHMuDQo+Pj4gPT09PT09PT0N Cj4+PiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uOiBUb2tlblN0cmVhbSBmaWVs ZHMgY2Fubm90IGJlIHN0b3JlZA0KPj4+ICAgICAgICAgICBhdCBvcmcuYXBhY2hlLmx1Y2VuZS5k b2N1bWVudC5GaWVsZC48aW5pdD4oRmllbGQuamF2YToxNTUpDQo+Pj4gPT09PT09PT09DQo+Pj4N Cj4+PiBDYW4geW91IHBsZWFzZSBzdWdnZXN0IGhlcmUgdG9vPw0KPj4+DQo+Pj4gUmVnYXJkcw0K Pj4+IFJhamliDQo+Pj4NCj4+Pg0KPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4g RnJvbTogTWlraGFpbCBLaGx1ZG5ldiA8bWtobEBhcGFjaGUub3JnPg0KPj4+IFNlbnQ6IDI0IEFw cmlsIDIwMjUgMTI6MTANCj4+PiBUbzogamF2YS11c2VyQGx1Y2VuZS5hcGFjaGUub3JnDQo+Pj4g U3ViamVjdDogUmU6IFN1Z2dlc3Rpb24gbmVlZGVkIGZvciBhIGNhc2Ugb2YgTHVjZW5lIE1pZ3Jh dGlvbiB3aXRoDQo+Pj4gVG9rZW5TdHJlYW0NCj4+Pg0KPj4+IEhpDQo+Pj4gVXNlIFRleHRGaWVs ZC5UWVBFX1NUT1JFRCBhcyB0aGUgdGhpcmQgYXJndW1lbnQgaW4gbmV3IEZpZWxkKCkNCj4+PiBz ZWUNCj4+Pg0KPj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbHVjZW5lLXNvbHIvYmxvYi9l MjdmNDRlM2Q3OGRmY2VjMjMwYzk3ZTBhMTI0MGUzNzUxZGFlZmY5L2x1Y2VuZS9jb3JlL3NyYy9q YXZhL29yZy9hcGFjaGUvbHVjZW5lL2RvY3VtZW50L1RleHRGaWVsZC5qYXZhI0wzNUMzMy1MMzVD NDQNCj4+Pg0KPj4+DQo+Pj4gT24gVGh1LCBBcHIgMjQsIDIwMjUgYXQgODozN+KAr0FNIFNhaGEs IFJhamliIDxyYWppYi5zYWhhQHNhcC5jb20uaW52YWxpZD4NCj4+PiB3cm90ZToNCj4+Pg0KPj4+ PiBIaSBFeHBlcnRzLA0KPj4+Pg0KPj4+PiBXZSBhcmUgbWlncmF0aW5nIEx1Y2VuZSBmcm9tIDIu NC4xIHRvIDguMTEuMi4NCj4+Pj4NCj4+Pj4gRHVyaW5nIE1pZ3JhdGlvbiBmb3IgYSBwYXJ0IG9m IGNvZGUsIHdlIGFyZSBnZXR0aW5nIGJlbG93IGV4Y2VwdGlvbiBpbg0KPj4+PiA4LjExLjIgYmFz ZWQgY2hhbmdlcyBmcm9tIFJlZCBsaW5lIGNvbG9yZWQuDQo+Pj4+ID09PT09PT09PT09PT0NCj4+ Pj4gamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjogVG9rZW5TdHJlYW0gZmllbGRz IG11c3QgYmUgaW5kZXhlZA0KPj4+IGFuZA0KPj4+PiB0b2tlbml6ZWQNCj4+Pj4gYXQgb3JnLmFw YWNoZS5sdWNlbmUuZG9jdW1lbnQuRmllbGQuPGluaXQ+KEZpZWxkLmphdmE6MTUyKQ0KPj4+Pg0K Pj4+PiBJIHRpZWQgZmV3IG9wdGlvbnMuIEJ1dCwgY291bGQgbm90IGFibGUgdG8gcmVzb2x2ZSB0 aGUgZXJyb3IuIEJlaWl3DQo+Pj4+IENhbiBzb21lYm9keSBvZiB5b3UgcGxlYXNlIGhlbHAgbWUg dG8gaWRlbnRpZnksIHdoZXJlIGl0IGlzIGdvaW5nIGFzDQo+Pj4gd3Jvbmc/DQo+Pj4+IFdlIGhh ZCBjb2RlIGJhc2VkIG9uIDIuNC4xIGFzIGxpa2UgYmVsb3c6DQo+Pj4+ID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQo+Pj4+IEludCBjdXJyZW50VmFsPA0KPj4+PiBodHRwOi8v MTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZzPWN1cnJlbnRWYWwmcHJvamVjdD0yMDI1 X1JUTT4gPQ0KPj4+PiAvL3NvbWUgdmFsdWUNCj4+Pj4gUGF5bG9hZFRva2VuU3RyZWFtPA0KPj4+ Pg0KPj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9UGF5bG9hZFRv a2VuU3RyZWFtJnByb2plY3Q9MjAyNV9SVE0NCj4+Pj4gdG9rZW5TdHJlYW08DQo+Pj4+IGh0dHA6 Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP3JlZnM9dG9rZW5TdHJlYW0mcHJvamVjdD0y MDI1X1JUTT4gPQ0KPj4+PiBuZXcgUGF5bG9hZFRva2VuU3RyZWFtPA0KPj4+Pg0KPj4+IGh0dHA6 Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9UGF5bG9hZFRva2VuU3RyZWFtJnBy b2plY3Q9MjAyNV9SVE0NCj4+Pj4+ICgpOw0KPj4+PiB0b2tlblN0cmVhbTwNCj4+Pj4NCj4+PiBo dHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5z ZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZXJ2aWNlcGx1Z2lucy9zcmMvY29t L3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL2x1Y2VuZS9pbmRleC9lbmdpbmUv THVjZW5lSW5kZXhFbmdpbmUuamF2YSN0b2tlblN0cmVhbQ0KPj4+Pj4gLnNldFBheWxvYWQ8DQo+ Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9c2V0UGF5bG9hZCZw cm9qZWN0PTIwMjVfUlRNDQo+Pj4+PiAoY3VycmVudFZhbDwNCj4+Pj4gaHR0cDovLzEwLjIzOC4y MzYuMTAxOjgwODAvc291cmNlL3M/ZGVmcz1jdXJyZW50VmFsJnByb2plY3Q9MjAyNV9SVE0+KTsN Cj4+Pj4gbHVjRmllbGQ8DQo+Pj4+DQo+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291 cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3Jr L2phdmEvc2VydmljZXBsdWdpbnMvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3Jt L3NlYXJjaC9sdWNlbmUvaW5kZXgvZW5naW5lL0x1Y2VuZUluZGV4RW5naW5lLmphdmEjbHVjRmll bGQNCj4+Pj4gPSBuZXcgRmllbGQ8DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3Nv dXJjZS9zP2RlZnM9RmllbGQmcHJvamVjdD0yMDI1X1JUTT4oY29uZmlnPA0KPj4+PiBodHRwOi8v MTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZzPWNvbmZpZyZwcm9qZWN0PTIwMjVfUlRN DQo+Pj4+PiAucGF5bG9hZFVpZDwNCj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291 cmNlL3M/ZGVmcz1wYXlsb2FkVWlkJnByb2plY3Q9MjAyNV9SVE0NCj4+Pj4+ICgpLm5hbWU8aHR0 cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/ZGVmcz1uYW1lJnByb2plY3Q9MjAyNV9S VE0NCj4+Pj4gLA0KPj4+PiB0b2tlblN0cmVhbTwNCj4+Pj4NCj4+PiBodHRwOi8vMTAuMjM4LjIz Ni4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2gu amF2YS9mcmFtZXdvcmsvamF2YS9zZXJ2aWNlcGx1Z2lucy9zcmMvY29tL3NhcC9idXNpbmVzc29i amVjdHMvcGxhdGZvcm0vc2VhcmNoL2x1Y2VuZS9pbmRleC9lbmdpbmUvTHVjZW5lSW5kZXhFbmdp bmUuamF2YSN0b2tlblN0cmVhbQ0KPj4+Pj4gKTsNCj4+Pj4gZG9jPGh0dHA6Ly8xMC4yMzguMjM2 LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9ZG9jJnByb2plY3Q9MjAyNV9SVE0+LmFkZDwNCj4+Pj4g aHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/ZGVmcz1hZGQmcHJvamVjdD0yMDI1 X1JUTT4obHVjRmllbGQ8DQo+Pj4+DQo+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291 cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3Jr L2phdmEvc2VydmljZXBsdWdpbnMvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3Jt L3NlYXJjaC9sdWNlbmUvaW5kZXgvZW5naW5lL0x1Y2VuZUluZGV4RW5naW5lLmphdmEjbHVjRmll bGQNCj4+Pj4+ICk7DQo+Pj4+IC4uLi4uLg0KPj4+PiBwdWJsaWMgY2xhc3MgUGF5bG9hZFRva2Vu U3RyZWFtPA0KPj4+Pg0KPj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP3Jl ZnM9UGF5bG9hZFRva2VuU3RyZWFtJnByb2plY3Q9MjAyNV9SVE0NCj4+Pj4gZXh0ZW5kcyBUb2tl blN0cmVhbTwNCj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/ZGVmcz1U b2tlblN0cmVhbSZwcm9qZWN0PTIwMjVfUlRNPnsNCj4+Pj4gcHVibGljIHN0YXRpYyBTdHJpbmc8 DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9U3RyaW5nJnBy b2plY3Q9MjAyNV9SVE0+DQo+Pj4+IFVJRF9QQVlMT0FEX1NUQVJUX1ZBTDwNCj4+Pj4NCj4+PiBo dHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9yZWZzPVVJRF9QQVlMT0FEX1NUQVJU X1ZBTCZwcm9qZWN0PTIwMjVfUlRNDQo+Pj4+ID0gIl9VSURfIjsNCj4+Pj4gICAgICAgICAgICAg ICAgIHByaXZhdGUgVG9rZW48DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJj ZS9zP2RlZnM9VG9rZW4mcHJvamVjdD0yMDI1X1JUTT4gdG9rZW48DQo+Pj4+IGh0dHA6Ly8xMC4y MzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP3JlZnM9dG9rZW4mcHJvamVjdD0yMDI1X1JUTT4gPSBu ZXcNCj4+Pj4gVG9rZW48aHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/ZGVmcz1U b2tlbiZwcm9qZWN0PTIwMjVfUlRNDQo+Pj4+PiAoVUlEX1BBWUxPQURfU1RBUlRfVkFMPA0KPj4+ IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3Jt LnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNp bmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0u amF2YSNVSURfUEFZTE9BRF9TVEFSVF9WQUwNCj4+Pj4+ICwwLDApOw0KPj4+PiAgICAgICAgICAg ICAgICAgcHJpdmF0ZSBieXRlW10gYnVmZmVyPA0KPj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6 ODA4MC9zb3VyY2Uvcz9yZWZzPWJ1ZmZlciZwcm9qZWN0PTIwMjVfUlRNPiA9IG5ldw0KPj4+PiBi eXRlWzRdOw0KPj4+PiAgICAgICAgICAgICAgICAgcHJpdmF0ZSBib29sZWFuIHJldHVyblRva2Vu PA0KPj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9yZWZzPXJldHVyblRv a2VuJnByb2plY3Q9MjAyNV9SVE0+ID0NCj4+Pj4gZmFsc2U7DQo+Pj4+DQo+Pj4+ICAgICAgICAg ICAgICAgICBwdWJsaWMgdm9pZCBzZXRQYXlsb2FkPA0KPj4+PiBodHRwOi8vMTAuMjM4LjIzNi4x MDE6ODA4MC9zb3VyY2Uvcz9yZWZzPXNldFBheWxvYWQmcHJvamVjdD0yMDI1X1JUTQ0KPj4+PiAo aW50DQo+Pj4+IHVpZDxodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9yZWZzPXVp ZCZwcm9qZWN0PTIwMjVfUlRNPil7DQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBidWZmZXI8DQo+Pj4+DQo+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hy ZWYvMjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEv c2RrL3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4 L1BheWxvYWRUb2tlblN0cmVhbS5qYXZhI2J1ZmZlcg0KPj4+PiBbMF0NCj4+Pj4gPSAoYnl0ZSl1 aWQ8DQo+Pj4+DQo+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYvMjAy NV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2RrL3Ny Yy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4L1BheWxv YWRUb2tlblN0cmVhbS5qYXZhI3VpZA0KPj4+Pj4gOw0KPj4+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnVmZmVyPA0KPj4+Pg0KPj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgw L3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1l d29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNo L3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSNidWZmZXINCj4+Pj4gWzFdDQo+Pj4+ ID0gKGJ5dGUpKHVpZDwNCj4+Pj4NCj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3Vy Y2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsv amF2YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsv aW5kZXgvUGF5bG9hZFRva2VuU3RyZWFtLmphdmEjdWlkDQo+Pj4+Pj4+IDgpOw0KPj4+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyPA0KPj4+Pg0KPj4+IGh0dHA6Ly8xMC4y MzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNl YXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMv cGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSNidWZmZXIN Cj4+Pj4gWzJdDQo+Pj4+ID0gKGJ5dGUpKHVpZDwNCj4+Pj4NCj4+PiBodHRwOi8vMTAuMjM4LjIz Ni4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2gu amF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRm b3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFtLmphdmEjdWlkDQo+Pj4+Pj4+ IDE2KTsNCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcjwNCj4+Pj4N Cj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0 Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAv YnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3Ry ZWFtLmphdmEjYnVmZmVyDQo+Pj4+IFszXQ0KPj4+PiA9IChieXRlKSh1aWQ8DQo+Pj4+DQo+Pj4g aHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZvcm0u c2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2RrL3NyYy9jb20vc2FwL2J1c2lu ZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4L1BheWxvYWRUb2tlblN0cmVhbS5q YXZhI3VpZA0KPj4+Pj4+PiAyNCk7DQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0b2tlbjwNCj4+Pj4NCj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJl Zi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9z ZGsvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgv UGF5bG9hZFRva2VuU3RyZWFtLmphdmEjdG9rZW4NCj4+Pj4+IC5zZXRQYXlsb2FkPA0KPj4+IGh0 dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNl cnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVz c29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2 YSNzZXRQYXlsb2FkDQo+Pj4+IChuZXcNCj4+Pj4gUGF5bG9hZDwNCj4+PiBodHRwOi8vMTAuMjM4 LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZzPVBheWxvYWQmcHJvamVjdD0yMDI1X1JUTQ0KPj4+ Pj4gKGJ1ZmZlcjwNCj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8y MDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsv c3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5 bG9hZFRva2VuU3RyZWFtLmphdmEjYnVmZmVyDQo+Pj4+PiApKTsNCj4+Pj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVyblRva2VuID0gdHJ1ZTsNCj4+Pj4gICAgICAgICAgICAg ICAgIH0NCj4+Pj4gICAgICAgICAgICAgICAgIHB1YmxpYyBUb2tlbjwNCj4+Pj4gaHR0cDovLzEw LjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/ZGVmcz1Ub2tlbiZwcm9qZWN0PTIwMjVfUlRNPiBu ZXh0PA0KPj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9yZWZzPW5leHQm cHJvamVjdD0yMDI1X1JUTT4oKSB0aHJvd3MNCj4+Pj4gSU9FeGNlcHRpb248DQo+Pj4+IGh0dHA6 Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9SU9FeGNlcHRpb24mcHJvamVjdD0y MDI1X1JUTT57DQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0dXJu VG9rZW48DQo+Pj4+DQo+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYv MjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2Rr L3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4L1Bh eWxvYWRUb2tlblN0cmVhbS5qYXZhI3JldHVyblRva2VuDQo+Pj4+ICl7DQo+Pj4+IHJldHVyblRv a2VuPA0KPj4+Pg0KPj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIw MjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9z cmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXls b2FkVG9rZW5TdHJlYW0uamF2YSNyZXR1cm5Ub2tlbg0KPj4+PiA9IGZhbHNlOyByZXR1cm4gdG9r ZW48DQo+Pj4+DQo+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYvMjAy NV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2RrL3Ny Yy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4L1BheWxv YWRUb2tlblN0cmVhbS5qYXZhI3Rva2VuDQo+Pj4+IDsNCj4+Pj4gfQ0KPj4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZWxzZSB7IHJldHVybiBudWxsPA0KPj4+PiBodHRwOi8vMTAu MjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZzPW51bGwmcHJvamVjdD0yMDI1X1JUTT47IH0N Cj4+Pj4NCj4+Pj4gICAgICAgICAgICAgICAgIH0NCj4+Pj4gfQ0KPj4+Pg0KPj4+Pg0KPj4+PiBX ZSBoYXZlIG1hZGUgY29kZSBiYXNlZCBvbiA4LjExLjIgYXMgbGlrZSBiZWxvdzoNCj4+Pj4gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+Pj4+IFBheWxvYWRUb2tl blN0cmVhbSB0b2tlblN0cmVhbSA9IG5ldyBQYXlsb2FkVG9rZW5TdHJlYW0oKTsNCj4+Pj4gdG9r ZW5TdHJlYW0uc2V0UGF5bG9hZChjdXJyZW50VmFsKTsNCj4+Pj4gRmllbGRUeXBlIGZpZWxkVHlw ZSA9IG5ldyBGaWVsZFR5cGUoKTsNCj4+Pj4gbHVjRmllbGQgPSBuZXcgRmllbGQoY29uZmlnLnBh eWxvYWRVaWQoKS5uYW1lLCB0b2tlblN0cmVhbSwgZmllbGRUeXBlKTsNCj4+Pj4gZG9jLmFkZChs dWNGaWVsZCk7DQo+Pj4+IC0tLS0NCj4+Pj4gcHVibGljIGNsYXNzIFBheWxvYWRUb2tlblN0cmVh bTwNCj4+Pj4NCj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9yZWZzPVBh eWxvYWRUb2tlblN0cmVhbSZwcm9qZWN0PTIwMjVfUlRNDQo+Pj4+IGV4dGVuZHMgVG9rZW5TdHJl YW08DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9VG9rZW5T dHJlYW0mcHJvamVjdD0yMDI1X1JUTT57DQo+Pj4+IHB1YmxpYyBzdGF0aWMgU3RyaW5nPA0KPj4+ PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZzPVN0cmluZyZwcm9qZWN0 PTIwMjVfUlRNPg0KPj4+PiBVSURfUEFZTE9BRF9TVEFSVF9WQUw8DQo+Pj4+DQo+Pj4gaHR0cDov LzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/cmVmcz1VSURfUEFZTE9BRF9TVEFSVF9WQUwm cHJvamVjdD0yMDI1X1JUTQ0KPj4+PiA9ICJfVUlEXyI7DQo+Pj4+IHByaXZhdGUgYnl0ZVtdIGJ1 ZmZlcjwNCj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/cmVmcz1idWZm ZXImcHJvamVjdD0yMDI1X1JUTT4gPSBuZXcNCj4+Pj4gYnl0ZVs0XTsNCj4+Pj4gICAgICAgICAg ICAgICAgIHByaXZhdGUgYm9vbGVhbiByZXR1cm5Ub2tlbjwNCj4+Pj4gaHR0cDovLzEwLjIzOC4y MzYuMTAxOjgwODAvc291cmNlL3M/cmVmcz1yZXR1cm5Ub2tlbiZwcm9qZWN0PTIwMjVfUlRNPiA9 DQo+Pj4+IGZhbHNlOw0KPj4+Pg0KPj4+PiAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgc2V0 UGF5bG9hZDwNCj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/cmVmcz1z ZXRQYXlsb2FkJnByb2plY3Q9MjAyNV9SVE0NCj4+Pj4gKGludA0KPj4+PiB1aWQ8aHR0cDovLzEw LjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/cmVmcz11aWQmcHJvamVjdD0yMDI1X1JUTT4pew0K Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyPA0KPj4+Pg0KPj4+IGh0 dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNl cnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVz c29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2 YSNidWZmZXINCj4+Pj4gWzBdDQo+Pj4+ID0gKGJ5dGUpdWlkPA0KPj4+Pg0KPj4+IGh0dHA6Ly8x MC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2Vz LnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVj dHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSN1aWQN Cj4+Pj4+IDsNCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcjwNCj4+ Pj4NCj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9w bGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9z YXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2Vu U3RyZWFtLmphdmEjYnVmZmVyDQo+Pj4+IFsxXQ0KPj4+PiA9IChieXRlKSh1aWQ8DQo+Pj4+DQo+ Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZv cm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2RrL3NyYy9jb20vc2FwL2J1 c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4L1BheWxvYWRUb2tlblN0cmVh bS5qYXZhI3VpZA0KPj4+Pj4+PiA4KTsNCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJ1ZmZlcjwNCj4+Pj4NCj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uv eHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2 YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5k ZXgvUGF5bG9hZFRva2VuU3RyZWFtLmphdmEjYnVmZmVyDQo+Pj4+IFsyXQ0KPj4+PiA9IChieXRl KSh1aWQ8DQo+Pj4+DQo+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYv MjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2Rr L3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4L1Bh eWxvYWRUb2tlblN0cmVhbS5qYXZhI3VpZA0KPj4+Pj4+PiAxNik7DQo+Pj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBidWZmZXI8DQo+Pj4+DQo+Pj4gaHR0cDovLzEwLjIzOC4yMzYu MTAxOjgwODAvc291cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmph dmEvZnJhbWV3b3JrL2phdmEvc2RrL3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9y bS9zZWFyY2gvc2RrL2luZGV4L1BheWxvYWRUb2tlblN0cmVhbS5qYXZhI2J1ZmZlcg0KPj4+PiBb M10NCj4+Pj4gPSAoYnl0ZSkodWlkPA0KPj4+Pg0KPj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4 MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2Zy YW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2Vh cmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSN1aWQNCj4+Pj4+Pj4gMjQpOw0K Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGF5bG9hZEF0dHJpYnV0ZUltcGwg YXR0cmlidXRlSW1wbCA9IG5ldw0KPj4+PiBQYXlsb2FkQXR0cmlidXRlSW1wbChuZXcgQnl0ZXNS ZWYoYnVmZmVyKSk7DQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEF0dHJp YnV0ZUltcGwoYXR0cmlidXRlSW1wbCk7DQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm5Ub2tlbiA9IHRydWU7DQo+Pj4+ICAgICAgICAgICAgICAgICB9DQo+Pj4+ICAg ICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBpbmNyZW1lbnRUb2tlbigpIHRocm93cyBJT0V4 Y2VwdGlvbiB7DQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0dXJu VG9rZW4pew0KPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm5Ub2tlbiA9IGZhbHNlOw0KPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCj4+Pj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0K Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7DQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+Pj4+ICAgICAg ICAgICAgICAgICB9DQo+Pj4+IH0NCj4+Pj4NCj4+Pj4gUmVnYXJkcw0KPj4+PiBSYWppYg0KPj4+ Pg0KPj4+Pg0KPj4+IC0tDQo+Pj4gU2luY2VyZWx5IHlvdXJzDQo+Pj4gTWlraGFpbCBLaGx1ZG5l dg0KPj4+DQo+IC0tDQo+IFV3ZSBTY2hpbmRsZXINCj4gQWNodGVyZGllayAxOSwgRC0yODM1NyBC cmVtZW4NCj4gaHR0cHM6Ly93d3cudGhldGFwaGkuZGUvDQo+IGVNYWlsOiB1d2VAdGhldGFwaGku ZGUNCj4NCj4NCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGphdmEt dXNlci11bnN1YnNjcmliZUBsdWNlbmUuYXBhY2hlLm9yZw0KPiBGb3IgYWRkaXRpb25hbCBjb21t YW5kcywgZS1tYWlsOiBqYXZhLXVzZXItaGVscEBsdWNlbmUuYXBhY2hlLm9yZw0KPg0KPg0KPiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogamF2YS11c2VyLXVuc3Vic2Ny aWJlQGx1Y2VuZS5hcGFjaGUub3JnDQo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6 IGphdmEtdXNlci1oZWxwQGx1Y2VuZS5hcGFjaGUub3JnDQo+DQotLQ0KVXdlIFNjaGluZGxlcg0K QWNodGVyZGllayAxOSwgRC0yODM1NyBCcmVtZW4NCmh0dHBzOi8vd3d3LnRoZXRhcGhpLmRlLw0K ZU1haWw6IHV3ZUB0aGV0YXBoaS5kZQ0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KVG8gdW5zdWJzY3JpYmUs IGUtbWFpbDogamF2YS11c2VyLXVuc3Vic2NyaWJlQGx1Y2VuZS5hcGFjaGUub3JnDQpGb3IgYWRk aXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBqYXZhLXVzZXItaGVscEBsdWNlbmUuYXBhY2hlLm9y Zw0KDQo= DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGphdmEtdXNlci11 bnN1YnNjcmliZUBsdWNlbmUuYXBhY2hlLm9yZw0KRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMs IGUtbWFpbDogamF2YS11c2VyLWhlbHBAbHVjZW5lLmFwYWNoZS5vcmcNCg0K