Re: A deficiency in lucene code that affects memory footprint and GC
"Misha Dmitriev via java-user" <[email protected]> Mon, 2 Feb 2026 18:23:57 +0000
| Newsgroups | gmane.comp.jakarta.lucene.user |
|---|---|
| Message-ID | <CH9PR21MB5856033F2721A8D14310BAA8C29AA@CH9PR21MB5856.namprd21.prod.outlook.com> |
--_000_CH9PR21MB5856033F2721A8D14310BAA8C29AACH9PR21MB5856namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RGVhciBMdWNlbmUgbWFpbnRhaW5lcnMsIHBsZWFzZSByZXZpZXcgYW5vdGhlciBQUiBodHRwczov L2dpdGh1Yi5jb20vYXBhY2hlL2x1Y2VuZS9wdWxsLzE1NjM3LyAuIEl0IGFkZHJlc3NlcyBhbm90 aGVyIHBhcnQgb2YgdGhlIHNhbWUgbWVtb3J5IG92ZXItYWxsb2NhdGlvbiBwcm9ibGVtLiBJdCdz IHNtYWxsZXIsIGJ1dCBzdGlsbCBtYXR0ZXJzIGZvciBvdXIgYXBwcy4NCg0KVGhhbmtzLA0KDQpN aXNoYQ0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KRnJvbTogTWlzaGEgRG1p dHJpZXYgdmlhIGphdmEtdXNlciA8amF2YS11c2VyQGx1Y2VuZS5hcGFjaGUub3JnPg0KU2VudDog TW9uZGF5LCBKYW51YXJ5IDI2LCAyMDI2IDQ6MjUgUE0NClRvOiBqYXZhLXVzZXJAbHVjZW5lLmFw YWNoZS5vcmcgPGphdmEtdXNlckBsdWNlbmUuYXBhY2hlLm9yZz4NCkNjOiBNaXNoYSBEbWl0cmll diA8bWRtaXRyaWV2QGxpbmtlZGluLmNvbT4NClN1YmplY3Q6IFJlOiBBIGRlZmljaWVuY3kgaW4g bHVjZW5lIGNvZGUgdGhhdCBhZmZlY3RzIG1lbW9yeSBmb290cHJpbnQgYW5kIEdDDQoNCkFuZCB0 byBjbG9zZSB0aGUgbG9vcCwgaGVyZSBpcyBteSBQUjogaHR0cHM6Ly9uYW0wNi5zYWZlbGlua3Mu cHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRmFw YWNoZSUyRmx1Y2VuZSUyRnB1bGwlMkYxNTYxOCZkYXRhPTA1JTdDMDIlN0NtZG1pdHJpZXYlNDBs aW5rZWRpbi5jb20lN0M0NzM4NWYwMTUyZTM0NzI3MjI3ZTA4ZGU1ZDNhOWY2MyU3QzcyZjk4OGJm ODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMCU3QzAlN0M2MzkwNTA3MDM1NDk1MjMzMTMlN0NV bmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKRmJYQjBlVTFoY0draU9uUnlkV1VzSWxZaU9pSXdMakF1 TURBd01DSXNJbEFpT2lKWGFXNHpNaUlzSWtGT0lqb2lUV0ZwYkNJc0lsZFVJam95ZlElM0QlM0Ql N0MwJTdDJTdDJTdDJnNkYXRhPTc3ellqeXQxVFpGS1Z6WkJGdmQ3VWNacyUyQmUwRWZJTjBxOFcx Y1ZJMGF2TSUzRCZyZXNlcnZlZD0wPGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbHVjZW5lL3B1 bGwvMTU2MTg+DQoNClRoYW5rIHlvdSBhZ2FpbiBmb3IgeW91ciBoZWxwIGV2ZXJ5Ym9keSwgYW5k IGxvb2tpbmcgZm9yd2FyZCB0byB5b3VyIHJldmlld3MhDQoNCk1pc2hhDQoNCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fDQpGcm9tOiBNaXNoYSBEbWl0cmlldiB2aWEgamF2YS11c2Vy IDxqYXZhLXVzZXJAbHVjZW5lLmFwYWNoZS5vcmc+DQpTZW50OiBNb25kYXksIEphbnVhcnkgMjYs IDIwMjYgMTo1MyBQTQ0KVG86IGphdmEtdXNlckBsdWNlbmUuYXBhY2hlLm9yZyA8amF2YS11c2Vy QGx1Y2VuZS5hcGFjaGUub3JnPg0KQ2M6IE1pc2hhIERtaXRyaWV2IDxtZG1pdHJpZXZAbGlua2Vk aW4uY29tPg0KU3ViamVjdDogUmU6IEEgZGVmaWNpZW5jeSBpbiBsdWNlbmUgY29kZSB0aGF0IGFm ZmVjdHMgbWVtb3J5IGZvb3RwcmludCBhbmQgR0MNCg0KVGhhbmsgeW91IHZlcnkgbXVjaCwgYWxs LCBmb3IgeW91ciBxdWljayByZXNwb25zZXMhIEkndmUgYmVlbiBidXN5IHdpdGggb3RoZXIgc3R1 ZmYgcmVjZW50bHksIGJ1dCB3aWxsIHJlc3VtZSBteSBhdHRlbXB0cyB0byBnZW5lcmF0ZSBhIGx1 Y2VuZSBQUiBzb29uLg0KDQpJbiB0aGUgbWVhbnRpbWUsIG91ciBlYXJseSBleHBlcmltZW50cyBz ZWVtIHRvIHN1Z2dlc3QgdGhhdCB3aXRoIG15IHByb3Bvc2VkIGNoYW5nZSwgd2UgY2FuIGltcHJv dmUgcGVyZm9ybWFuY2Ugb2Ygb25lIG9mIG91ciBTZWFyY2ggYXBwcyBieSAyMC4uMjUgcGVyIGNl bnQuIFNvIGF0IGxlYXN0IGZvciBvdXIgY29tcGFueSB0aGlzIG9wdGltaXphdGlvbiBpcyB2ZXJ5 IHdvcnRod2hpbGUuDQoNCk1pc2hhDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f DQpGcm9tOiBEYXdpZCBXZWlzcyA8ZGF3aWQud2Vpc3NAZ21haWwuY29tPg0KU2VudDogRnJpZGF5 LCBKYW51YXJ5IDIzLCAyMDI2IDE6NTUgQU0NClRvOiBqYXZhLXVzZXJAbHVjZW5lLmFwYWNoZS5v cmcgPGphdmEtdXNlckBsdWNlbmUuYXBhY2hlLm9yZz4NCkNjOiBNaXNoYSBEbWl0cmlldiA8bWRt aXRyaWV2QGxpbmtlZGluLmNvbT4NClN1YmplY3Q6IFJlOiBBIGRlZmljaWVuY3kgaW4gbHVjZW5l IGNvZGUgdGhhdCBhZmZlY3RzIG1lbW9yeSBmb290cHJpbnQgYW5kIEdDDQoNCg0KSGkgTWlzaGEs DQoNClVzaW5nIGEgZ2l0aHViIGZvcmsgYW5kIHB1bGwgcmVxdWVzdCBpcyBieSBmYXIgdGhlIGJl c3Qgd2F5IHRvIGRvIGl0IGJlY2F1c2UgaXQgYWxsb3dzIGF1dG9tYXRlZCBjaGVja3MgdG8gYmUg cnVuLCBlYXNpZXIgcmV2aWV3cywgZXRjLiBJdCBpcyBhbHNvIGEgZ29vZCBsZWFybmluZyBleGVy Y2lzZSB0byBnZXQgdXAgdG8gc3BlZWQgd2l0aCB3b3JraW5nIHdpdGggbXVsdGlwbGUgcmVtb3Rl cyBpbiBnaXQsIGlmIHlvdSdyZSB3aWxsaW5nIHRvIGludmVzdCBzb21lIHRpbWUgaW4gaXQgKHlv dSBjYW4gaGF2ZSBib3RoIHRoZSB1cHN0cmVhbSBsdWNlbmUgcmVwbyBhbmQgeW91ciBvd24gZm9y ayBhcyB0d28gcmVtb3RlcyBpbiB0aGUgc2FtZSBsb2NhbCBnaXQgY2xvbmUpLg0KDQpEYXdpZA0K DQpPbiBGcmksIEphbiAyMywgMjAyNiBhdCAyOjMw4oCvQU0gTWlzaGEgRG1pdHJpZXYgdmlhIGph dmEtdXNlciA8amF2YS11c2VyQGx1Y2VuZS5hcGFjaGUub3JnPG1haWx0bzpqYXZhLXVzZXJAbHVj ZW5lLmFwYWNoZS5vcmc+PiB3cm90ZToNCkhpIGFnYWluIERhdmlkLA0KDQpGb3JnaXZlIG15IGln bm9yYW5jZSwgc2luY2UgSSd2ZSBuZXZlciBjb250cmlidXRlZCB0byBsdWNlbmUgb3IgYXBhY2hl IGJlZm9yZS4gSSBjcmVhdGVkIGEgZ2l0IGJyYW5jaCBiYXNlZCBvbiBsdWNlbmUgbWFpbiBicmFu Y2ggbG9jYWxseSwgbWFkZSwgYnVpbGQsIGNoZWNrZWQgYW5kIGNvbW1pdGVkIG15IGZpeCwgYW5k IHRoZW4gdHJpZWQgdG8gY3JlYXRlIGEgUFIgYnkgcHVzaGluZyB0aGF0IGJyYW5jaCwgc2VlIGJl bG93LiBVbmZvcnR1bmF0ZWx5LCBJIGdldCBhbiBlcnJvci4gSSB1c2VkIGEgY2xhc3NpYyBQQVQg YXMgYSBwYXNzd29yZCwgc28gdGhlIHByb2JsZW0gc2VlbXMgdG8gYmUgbm90IHdpdGggcGFzc3dv cmQgaXRzZWxmLCBidXQgd2l0aCBub3QgaGF2aW5nIHNvbWUgImFjY2VzcyByaWdodHMiLiBDb3Vs ZCB5b3UgcGxlYXNlIHRha2UgYSBsb29rPyBJIGFtIHVzaW5nIG15IGdpdGh1YiBsb2dpbiBjb3Vu dG1kbSwgZW1haWwgY291bnRtZG1AZ21haWwuY29tPG1haWx0bzpjb3VudG1kbUBnbWFpbC5jb20+ DQoNCk1pc2hhDQoNCg0KJCBnaXQgcHVzaCAtdSBvcmlnaW4gb3B0aW1pemUtU1RFRi1tYWluDQpV c2VybmFtZSBmb3IgJ2h0dHBzOi8vbmFtMDYuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5j b20vP3VybD1odHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkYmZGF0YT0wNSU3QzAyJTdDbWRtaXRy aWV2JTQwbGlua2VkaW4uY29tJTdDNDczODVmMDE1MmUzNDcyNzIyN2UwOGRlNWQzYTlmNjMlN0M3 MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzAlN0MwJTdDNjM5MDUwNzAzNTQ5NTQz MTMzJTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SkZiWEIwZVUxaGNHa2lPblJ5ZFdVc0lsWWlP aUl3TGpBdU1EQXdNQ0lzSWxBaU9pSlhhVzR6TWlJc0lrRk9Jam9pVFdGcGJDSXNJbGRVSWpveWZR JTNEJTNEJTdDMCU3QyU3QyU3QyZzZGF0YT0lMkJ5UHVFa2dqMWpHWTlVZWY4c1RpWlhSSEdZRkZ6 NGh1VVVDSEk2bVF1SkklM0QmcmVzZXJ2ZWQ9MDxodHRwczovL25hbTA2LnNhZmVsaW5rcy5wcm90 ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZnaXRodWIuY29tJTJGJmRhdGE9 MDUlN0MwMiU3Q21kbWl0cmlldiU0MGxpbmtlZGluLmNvbSU3QzQ3Mzg1ZjAxNTJlMzQ3MjcyMjdl MDhkZTVkM2E5ZjYzJTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclN0MwJTdDMCU3 QzYzOTA1MDcwMzU0OTU1ODMyOCU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpGYlhCMGVVMWhj R2tpT25SeWRXVXNJbFlpT2lJd0xqQXVNREF3TUNJc0lsQWlPaUpYYVc0ek1pSXNJa0ZPSWpvaVRX RnBiQ0lzSWxkVUlqb3lmUSUzRCUzRCU3QzAlN0MlN0MlN0Mmc2RhdGE9YUE4R3R6Z1QySlAycXNx Z2d3Y1JLaFlQYm9TQzV4RlAyNVJrQiUyQlhVMWRjJTNEJnJlc2VydmVkPTA8aHR0cHM6Ly9uYW0w Ni5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZ2l0 aHViLmNvbSUyRiZkYXRhPTA1JTdDMDIlN0NtZG1pdHJpZXYlNDBsaW5rZWRpbi5jb20lN0M0NzM4 NWYwMTUyZTM0NzI3MjI3ZTA4ZGU1ZDNhOWY2MyU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2Qw MTFkYjQ3JTdDMCU3QzAlN0M2MzkwNTA3MDM1NDk1NzI3NjAlN0NVbmtub3duJTdDVFdGcGJHWnNi M2Q4ZXlKRmJYQjBlVTFoY0draU9uUnlkV1VzSWxZaU9pSXdMakF1TURBd01DSXNJbEFpT2lKWGFX NHpNaUlzSWtGT0lqb2lUV0ZwYkNJc0lsZFVJam95ZlElM0QlM0QlN0MwJTdDJTdDJTdDJnNkYXRh PXJaJTJGdG9mbVJZUmtSZlloUURubVdjV1h4dHN4WFpibGpKMzN6bTZUVmROTSUzRCZyZXNlcnZl ZD0wPGh0dHBzOi8vZ2l0aHViLmNvbS8+Pj4nOiBjb3VudG1kbQ0KUGFzc3dvcmQgZm9yICdodHRw czovL25hbTA2LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0El MkYlMkZjb3VudG1kbSU0MGdpdGh1Yi5jb20lMkYmZGF0YT0wNSU3QzAyJTdDbWRtaXRyaWV2JTQw bGlua2VkaW4uY29tJTdDNDczODVmMDE1MmUzNDcyNzIyN2UwOGRlNWQzYTlmNjMlN0M3MmY5ODhi Zjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzAlN0MwJTdDNjM5MDUwNzAzNTQ5NTgyNjc4JTdD VW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SkZiWEIwZVUxaGNHa2lPblJ5ZFdVc0lsWWlPaUl3TGpB dU1EQXdNQ0lzSWxBaU9pSlhhVzR6TWlJc0lrRk9Jam9pVFdGcGJDSXNJbGRVSWpveWZRJTNEJTNE JTdDMCU3QyU3QyU3QyZzZGF0YT1YWCUyQlZKOEVyQVF2Z0kzN01PcHRNTWMlMkJEOE1YSzd3Q1dM UGJGUVlXZ2lydyUzRCZyZXNlcnZlZD0wPGh0dHBzOi8vbmFtMDYuc2FmZWxpbmtzLnByb3RlY3Rp b24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmNvdW50bWRtJTQwZ2l0aHViLmNvbSUy RiZkYXRhPTA1JTdDMDIlN0NtZG1pdHJpZXYlNDBsaW5rZWRpbi5jb20lN0M0NzM4NWYwMTUyZTM0 NzI3MjI3ZTA4ZGU1ZDNhOWY2MyU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdD MCU3QzAlN0M2MzkwNTA3MDM1NDk1OTIwMzglN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKRmJY QjBlVTFoY0draU9uUnlkV1VzSWxZaU9pSXdMakF1TURBd01DSXNJbEFpT2lKWGFXNHpNaUlzSWtG T0lqb2lUV0ZwYkNJc0lsZFVJam95ZlElM0QlM0QlN0MwJTdDJTdDJTdDJnNkYXRhPVNsOEdwJTJC YXV4MUR6WGxpOVglMkZmNURuNllFSEJ5JTJCWWxYMldUJTJGUCUyRnpVciUyQlklM0QmcmVzZXJ2 ZWQ9MDxodHRwczovL25hbTA2LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9 aHR0cHMlM0ElMkYlMkZjb3VudG1kbSU0MGdpdGh1Yi5jb20lMkYmZGF0YT0wNSU3QzAyJTdDbWRt aXRyaWV2JTQwbGlua2VkaW4uY29tJTdDNDczODVmMDE1MmUzNDcyNzIyN2UwOGRlNWQzYTlmNjMl N0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzAlN0MwJTdDNjM5MDUwNzAzNTQ5 NjAxNDgxJTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SkZiWEIwZVUxaGNHa2lPblJ5ZFdVc0ls WWlPaUl3TGpBdU1EQXdNQ0lzSWxBaU9pSlhhVzR6TWlJc0lrRk9Jam9pVFdGcGJDSXNJbGRVSWpv eWZRJTNEJTNEJTdDMCU3QyU3QyU3QyZzZGF0YT0lMkZldCUyQjc4dXpza1dseVpEUTBtSHVrNXhX JTJGNDRCMm1FV0ZPTVIwd0Z4NThjJTNEJnJlc2VydmVkPTA8aHR0cHM6Ly9jb3VudG1kbUBnaXRo dWIuY29tLz4+Pic6DQpyZW1vdGU6IFBlcm1pc3Npb24gdG8gYXBhY2hlL2x1Y2VuZS5naXQgZGVu aWVkIHRvIGNvdW50bWRtLg0KZmF0YWw6IHVuYWJsZSB0byBhY2Nlc3MgJ2h0dHBzOi8vbmFtMDYu c2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdpdGh1 Yi5jb20lMkZhcGFjaGUlMkZsdWNlbmUuZ2l0JTJGJmRhdGE9MDUlN0MwMiU3Q21kbWl0cmlldiU0 MGxpbmtlZGluLmNvbSU3QzQ3Mzg1ZjAxNTJlMzQ3MjcyMjdlMDhkZTVkM2E5ZjYzJTdDNzJmOTg4 YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclN0MwJTdDMCU3QzYzOTA1MDcwMzU0OTYxMDYzOSU3 Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpGYlhCMGVVMWhjR2tpT25SeWRXVXNJbFlpT2lJd0xq QXVNREF3TUNJc0lsQWlPaUpYYVc0ek1pSXNJa0ZPSWpvaVRXRnBiQ0lzSWxkVUlqb3lmUSUzRCUz RCU3QzAlN0MlN0MlN0Mmc2RhdGE9Z3FINThFbXh4T3c5TDVoR3dDYjJCSk1pb0daZjVyekpzRUp4 VmticWZpRSUzRCZyZXNlcnZlZD0wPGh0dHBzOi8vbmFtMDYuc2FmZWxpbmtzLnByb3RlY3Rpb24u b3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZhcGFjaGUlMkZsdWNl bmUuZ2l0JTJGJmRhdGE9MDUlN0MwMiU3Q21kbWl0cmlldiU0MGxpbmtlZGluLmNvbSU3QzQ3Mzg1 ZjAxNTJlMzQ3MjcyMjdlMDhkZTVkM2E5ZjYzJTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAx MWRiNDclN0MwJTdDMCU3QzYzOTA1MDcwMzU0OTYzNTIyMyU3Q1Vua25vd24lN0NUV0ZwYkdac2Iz ZDhleUpGYlhCMGVVMWhjR2tpT25SeWRXVXNJbFlpT2lJd0xqQXVNREF3TUNJc0lsQWlPaUpYYVc0 ek1pSXNJa0ZPSWpvaVRXRnBiQ0lzSWxkVUlqb3lmUSUzRCUzRCU3QzAlN0MlN0MlN0Mmc2RhdGE9 ZCUyQnZsdW9BMHNXTGtLazR5T2xPNXlSVEdISE5WRVVLd0VRViUyQmVoMUJvUm8lM0QmcmVzZXJ2 ZWQ9MDxodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL2x1Y2VuZS5naXQvPj4nOiBUaGUgcmVxdWVz dGVkIFVSTCByZXR1cm5lZCBlcnJvcjogNDAzDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQpGcm9tOiBEYXdpZCBXZWlzcyA8ZGF3aWQud2Vpc3NAZ21haWwuY29tPG1haWx0bzpk YXdpZC53ZWlzc0BnbWFpbC5jb20+Pg0KU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDIxLCAyMDI2 IDEwOjIxIFBNDQpUbzogamF2YS11c2VyQGx1Y2VuZS5hcGFjaGUub3JnPG1haWx0bzpqYXZhLXVz ZXJAbHVjZW5lLmFwYWNoZS5vcmc+IDxqYXZhLXVzZXJAbHVjZW5lLmFwYWNoZS5vcmc8bWFpbHRv OmphdmEtdXNlckBsdWNlbmUuYXBhY2hlLm9yZz4+DQpDYzogTWlzaGEgRG1pdHJpZXYgPG1kbWl0 cmlldkBsaW5rZWRpbi5jb208bWFpbHRvOm1kbWl0cmlldkBsaW5rZWRpbi5jb20+Pg0KU3ViamVj dDogUmU6IEEgZGVmaWNpZW5jeSBpbiBsdWNlbmUgY29kZSB0aGF0IGFmZmVjdHMgbWVtb3J5IGZv b3RwcmludCBhbmQgR0MNCg0KDQpIaSBNaXNoYSwNCg0KUGxlYXNlIHByb3ZpZGUgYSBwdWxsIHJl cXVlc3QuIFNtYWxsLCBpc29sYXRlZCBpbXByb3ZlbWVudHMgYXJlIGVhc2llciB0byByZXZpZXcg YW5kIHBhcnNlIGJ5IHVzIHRoYW4gbGFyZ2UgY2hhbmdlcyBidXQgYWxsIGFyZSB3ZWxjb21lLg0K DQpBbHNvLCBhIGxvdCBvZiAodHJhaW5lZCkgZXllcyBhcmUgbG9va2luZyBhdCB0aGlzIGNvZGUu Li4gdmVyeSBvZnRlbiB0aGUgcmVwb3J0cyBvZiBMdWNlbmUgbm90IHBlcmZvcm1pbmcgd2VsbCBh cmUgY2F1c2VkIGJ5IHdyb25nIHVzYWdlIHJhdGhlciB0aGFuIHByb2JsZW1zIHdpdGhpbiB0aGUg aW1wbGVtZW50YXRpb24gLSBpdCB3b3VsZCBiZSBnb29kIHRvIHNoYXJlIHRoZSBlbnRpcmUgY29u dGV4dCBvZiB3aGVuIHRoZSBwcm9ibGVtIGlzIGhhcHBlbmluZyBhbmQgdGhlIGNvbnRleHQgb2Yg b2NjdXJyZW5jZS4NCg0KRGF3aWQNCg0KT24gV2VkLCBKYW4gMjEsIDIwMjYgYXQgMTE6MTPigK9Q TSBNaXNoYSBEbWl0cmlldiB2aWEgamF2YS11c2VyIDxqYXZhLXVzZXJAbHVjZW5lLmFwYWNoZS5v cmc8bWFpbHRvOmphdmEtdXNlckBsdWNlbmUuYXBhY2hlLm9yZz48bWFpbHRvOmphdmEtdXNlckBs dWNlbmUuYXBhY2hlLm9yZzxtYWlsdG86amF2YS11c2VyQGx1Y2VuZS5hcGFjaGUub3JnPj4+IHdy b3RlOg0KSGkgTHVjZW5lIGNvbW11bml0eSwNCg0KQXQgTGlua2VkSW4sIHdlIHVzZSBsdWNlbmUg aW4gc29tZSBpbXBvcnRhbnQgc2VhcmNoIGFwcHMuIFdlIHJlY2VudGx5IGZvdW5kIHNvbWUgcHJv YmxlbXMgd2l0aCBHQyBhbmQgbWVtb3J5IGZvb3RwcmluZyBpbiBvbmUgb2YgdGhlbS4gV2UgdG9v ayBhIGhlYXAgZHVtcCBhbmQgYW5hbHl6ZWQgaXQgd2l0aCBKWFJheSAoaHR0cHM6Ly9uYW0wNi5z YWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGanhyYXku Y29tJTJGJmRhdGE9MDUlN0MwMiU3Q21kbWl0cmlldiU0MGxpbmtlZGluLmNvbSU3QzQ3Mzg1ZjAx NTJlMzQ3MjcyMjdlMDhkZTVkM2E5ZjYzJTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRi NDclN0MwJTdDMCU3QzYzOTA1MDcwMzU0OTY0NjA0NCU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhl eUpGYlhCMGVVMWhjR2tpT25SeWRXVXNJbFlpT2lJd0xqQXVNREF3TUNJc0lsQWlPaUpYYVc0ek1p SXNJa0ZPSWpvaVRXRnBiQ0lzSWxkVUlqb3lmUSUzRCUzRCU3QzAlN0MlN0MlN0Mmc2RhdGE9eFRy Rm9ZeDVWcGFIT2FiMlVsWHVwYW5kZjh4S09TSG1QNkxoV0RkT2FwMCUzRCZyZXNlcnZlZD0wPGh0 dHBzOi8vbmFtMDYuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUz QSUyRiUyRmp4cmF5LmNvbSUyRiZkYXRhPTA1JTdDMDIlN0NtZG1pdHJpZXYlNDBsaW5rZWRpbi5j b20lN0M0NzM4NWYwMTUyZTM0NzI3MjI3ZTA4ZGU1ZDNhOWY2MyU3QzcyZjk4OGJmODZmMTQxYWY5 MWFiMmQ3Y2QwMTFkYjQ3JTdDMCU3QzAlN0M2MzkwNTA3MDM1NDk2NTU5ODUlN0NVbmtub3duJTdD VFdGcGJHWnNiM2Q4ZXlKRmJYQjBlVTFoY0draU9uUnlkV1VzSWxZaU9pSXdMakF1TURBd01DSXNJ bEFpT2lKWGFXNHpNaUlzSWtGT0lqb2lUV0ZwYkNJc0lsZFVJam95ZlElM0QlM0QlN0MwJTdDJTdD JTdDJnNkYXRhPWxOVlNCMVhCUWx1VDdIeHAxSUJPQjZzR1BGUG1qeHZ3MTdGUHFwNWdsd1UlM0Qm cmVzZXJ2ZWQ9MD48aHR0cHM6Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNv bS8/dXJsPWh0dHBzJTNBJTJGJTJGanhyYXkuY29tJTJGJmRhdGE9MDUlN0MwMiU3Q21kbWl0cmll diU0MGxpbmtlZGluLmNvbSU3QzQ3Mzg1ZjAxNTJlMzQ3MjcyMjdlMDhkZTVkM2E5ZjYzJTdDNzJm OTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclN0MwJTdDMCU3QzYzOTA1MDcwMzU0OTY2NjIw MCU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpGYlhCMGVVMWhjR2tpT25SeWRXVXNJbFlpT2lJ d0xqQXVNREF3TUNJc0lsQWlPaUpYYVc0ek1pSXNJa0ZPSWpvaVRXRnBiQ0lzSWxkVUlqb3lmUSUz RCUzRCU3QzAlN0MlN0MlN0Mmc2RhdGE9aEZXQzI2VVpyWEs3SklONyUyRk5GbnNkb2VaVjJlWE9N WGpjaiUyQjlMQyUyRmVtTSUzRCZyZXNlcnZlZD0wPGh0dHBzOi8vbmFtMDYuc2FmZWxpbmtzLnBy b3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmp4cmF5LmNvbSUyRiZkYXRh PTA1JTdDMDIlN0NtZG1pdHJpZXYlNDBsaW5rZWRpbi5jb20lN0M0NzM4NWYwMTUyZTM0NzI3MjI3 ZTA4ZGU1ZDNhOWY2MyU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMCU3QzAl N0M2MzkwNTA3MDM1NDk2NzU0NTklN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKRmJYQjBlVTFo Y0draU9uUnlkV1VzSWxZaU9pSXdMakF1TURBd01DSXNJbEFpT2lKWGFXNHpNaUlzSWtGT0lqb2lU V0ZwYkNJc0lsZFVJam95ZlElM0QlM0QlN0MwJTdDJTdDJTdDJnNkYXRhPW55eXJBbzloSGtyVVl1 V0FHdkFmQUJoJTJGQXhpNHhKbE1KOVpZWSUyQjdzeFFFJTNEJnJlc2VydmVkPTA8aHR0cHM6Ly9q eHJheS5jb20vPj4+KS4gVW5mb3J0dW5hdGVseSwgd2UgY2Fubm90IHNoYXJlIHRoZSBlbnRpcmUg anhyYXkgYW5hbHlzaXMgZHVlIHRvIHNlY3VyaXR5IHJlc3RyaWN0aW9ucywgYnV0IHdlIGNhbiBz aGFyZSBvbmUgZXhjZXJwdCBmcm9tIGl0LCBzZWUgYmVsb3cuIEl0IGNvbWVzIGZyb20gc2VjdGlv biAxMSBvZiBqeHJheSByZXBvcnQsIOKAnEJhZCBQcmltaXRpdmUgQXJyYXlz4oCdLCB3aGljaCB0 ZWxscyB1cyBob3cgbXVjaCBtZW1vcnkgaXMgd2FzdGVkIGR1ZSB0byBlbXB0eSBvciB1bmRlci11 dGlsaXplZCBwcmltaXRpdmUgYXJyYXlzLiBUaGF0IHNlY3Rpb24gc2F5cyB0aGF0IG5lYXJseSA0 RyBvZiBtZW1vcnkgKDI1LjYlIG9mIHVzZWQgaGVhcCkgaXMgd2FzdGVkLiBBbmQgaXQgdHVybnMg b3V0IHRoYXQgbW9zdCBvZiB0aGF0IGlzIGR1ZSB0byBieXRlW10gYXJyYXlzIG1hbmFnZWQgYnkg U2VnbWVudFRlcm1zRW51bUZyYW1lIGNsYXNzLg0KDQpbWF0NCg0KVG8gY2xhcmlmeTogZnJvbSB0 aGUgYWJvdmUgc2NyZWVuc2hvdCwgZS5nLiA4MCUgb2YgYWxsIGFycmF5cyBwb2ludGVkIGJ5IHN1 ZmZpeEJ5dGVzIGRhdGEgZmllbGQgYXJlIGp1c3QgZW1wdHksIGkuZS4gY29udGFpbiBvbmx5IHpl cm9lcywgd2hpY2ggbGlrZWx5IG1lYW5zIHRoYXQgdGhleSBoYXZlIG5ldmVyIGJlZW4gdXNlZC4g T2YgdGhlIHJlbWFpbmluZyBhcnJheXMsIDMlIGFyZSDigJx0cmFpbC0wc+KAnSwgaS5lLiBoYXZl IG1vcmUgdGhhbiBhIGhhbGYgb2YgdHJhaWxpbmcgemVybyBlbGVtZW50cywgaS5lLiB3ZXJlIG9u bHkgcGFydGlhbGx5IHV0aWxpemVkLiBTbyBvbmx5IDE3JSBvZiB0aGVzZSBhcnJheXMgaGF2ZSBi ZWVuIHV0aWxpemVkIG1vcmUgb3IgbGVzcyBmdWxseS4gVGhlIHNhbWUgaXMgdHJ1ZSBmb3IgYWxs IG90aGVyIGJ5dGVbXSBhcnJheXMgbWFuYWdlZCBieSBTZWdtZW50VGVybXNFbnVtRnJhbWUuIE5v dGUgdGhhdCBmcm9tIG90aGVyIHNlY3Rpb25zIG9mIHRoZSBoZWFwIGR1bXAgaXTigJlzIGNsZWFy IHRoYXQgdGhlIG1ham9yaXR5IG9mIHRoZXNlIG9iamVjdHMgYXJlIGdhcmJhZ2UsIGkuZS4gdGhl eSBoYXZlIGFscmVhZHkgYmVlbiB1c2VkIGFuZCBkaXNjYXJkZWQuIFRodXMsIGF0IGxlYXN0IDgw JSBvZiBtZW1vcnkgdGhhdCB3YXMgYWxsb2NhdGVkIGZvciB0aGVzZSBieXRlW10gYXJyYXlzIGhh cyBub3QgYmVlbiB1c2VkIGFuZCB3YXMgd2FzdGVkLiBGcm9tIHNlcGFyYXRlIG1lbW9yeSBhbGxv Y2F0aW9uIHByb2ZpbGluZywgd2UgZXN0aW1hdGVkIHRoYXQgdGhlc2UgYXJyYXlzIGFyZSByZXNw b25zaWJsZSBmb3IgfjJHL3NlYyBvZiBtZW1vcnkgYWxsb2NhdGlvbi4gSWYgdGhleSB3ZXJlIGFs bG9jYXRlZCBsYXppbHkgcmF0aGVyIHRoYW4gZWFnZXJseSwgaS5lLiBqdXN0IGJlZm9yZSB0aGV5 IHdvdWxkIGJlIHJlYWxseSB1c2VkLCB3ZSBjb3VsZCBwb3RlbnRpYWxseSByZWR1Y2UgdGhlaXIg bWVtb3J5IGFsbG9jYXRpb24gcmF0ZSBzaGFyZSBmcm9tIDJHL3NlYyB0byAoMSAtIDAuOCkqMiA9 IDAuNCBHL3NlYy4NCg0KQSBzd2l0Y2ggZnJvbSBlYWdlciB0byBsYXp5IGFsbG9jYXRpb24gb2Yg c29tZSBkYXRhIHN0cnVjdHVyZSBpcyB1c3VhbGx5IGVhc3kgdG8gaW1wbGVtZW50LiBMZXTigJlz IHRha2UgYSBxdWljayBsb29rIGF0IHRoZSBzb3VyY2UgY29kZTxodHRwczovL25hbTA2LnNhZmVs aW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZmb3NzaWVzLm9y ZyUyRmxpbnV4JTJGd3d3JTJGbHVjZW5lLTEwLjMuMi1zcmMudGd6JTJGbHVjZW5lLTEwLjMuMiUy Rmx1Y2VuZSUyRmJhY2t3YXJkLWNvZGVjcyUyRnNyYyUyRmphdmElMkZvcmclMkZhcGFjaGUlMkZs dWNlbmUlMkZiYWNrd2FyZF9jb2RlY3MlMkZsdWNlbmU5MCUyRmJsb2NrdHJlZSUyRlNlZ21lbnRU ZXJtc0VudW1GcmFtZS5qYXZhJmRhdGE9MDUlN0MwMiU3Q21kbWl0cmlldiU0MGxpbmtlZGluLmNv bSU3QzQ3Mzg1ZjAxNTJlMzQ3MjcyMjdlMDhkZTVkM2E5ZjYzJTdDNzJmOTg4YmY4NmYxNDFhZjkx YWIyZDdjZDAxMWRiNDclN0MwJTdDMCU3QzYzOTA1MDcwMzU0OTY4NDY2MCU3Q1Vua25vd24lN0NU V0ZwYkdac2IzZDhleUpGYlhCMGVVMWhjR2tpT25SeWRXVXNJbFlpT2lJd0xqQXVNREF3TUNJc0ls QWlPaUpYYVc0ek1pSXNJa0ZPSWpvaVRXRnBiQ0lzSWxkVUlqb3lmUSUzRCUzRCU3QzAlN0MlN0Ml N0Mmc2RhdGE9bDhYbUV0aEFSSmVTTGJnaiUyQkNMQlpFVDVOMFUwamVFaGVMYTdYOFVIblZvJTNE JnJlc2VydmVkPTA8aHR0cHM6Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNv bS8/dXJsPWh0dHBzJTNBJTJGJTJGZm9zc2llcy5vcmclMkZsaW51eCUyRnd3dyUyRmx1Y2VuZS0x MC4zLjItc3JjLnRneiUyRmx1Y2VuZS0xMC4zLjIlMkZsdWNlbmUlMkZiYWNrd2FyZC1jb2RlY3Ml MkZzcmMlMkZqYXZhJTJGb3JnJTJGYXBhY2hlJTJGbHVjZW5lJTJGYmFja3dhcmRfY29kZWNzJTJG bHVjZW5lOTAlMkZibG9ja3RyZWUlMkZTZWdtZW50VGVybXNFbnVtRnJhbWUuamF2YSZkYXRhPTA1 JTdDMDIlN0NtZG1pdHJpZXYlNDBsaW5rZWRpbi5jb20lN0M0NzM4NWYwMTUyZTM0NzI3MjI3ZTA4 ZGU1ZDNhOWY2MyU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMCU3QzAlN0M2 MzkwNTA3MDM1NDk2OTQ1MDAlN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKRmJYQjBlVTFoY0dr aU9uUnlkV1VzSWxZaU9pSXdMakF1TURBd01DSXNJbEFpT2lKWGFXNHpNaUlzSWtGT0lqb2lUV0Zw YkNJc0lsZFVJam95ZlElM0QlM0QlN0MwJTdDJTdDJTdDJnNkYXRhPWxLMXJTUHA3ZnJCYXRCRjE0 bWNJN0QzY0llM0pkNWpaT3NwJTJCNmUlMkJoRGJ3JTNEJnJlc2VydmVkPTA8aHR0cHM6Ly9mb3Nz aWVzLm9yZy9saW51eC93d3cvbHVjZW5lLTEwLjMuMi1zcmMudGd6L2x1Y2VuZS0xMC4zLjIvbHVj ZW5lL2JhY2t3YXJkLWNvZGVjcy9zcmMvamF2YS9vcmcvYXBhY2hlL2x1Y2VuZS9iYWNrd2FyZF9j b2RlY3MvbHVjZW5lOTAvYmxvY2t0cmVlL1NlZ21lbnRUZXJtc0VudW1GcmFtZS5qYXZhPj4+LiBU aGUgc3VmZml4Qnl0ZXMgYXJyYXkgdXNhZ2UgaGFzIHRoZSBmb2xsb3dpbmcgcGF0dGVybjoNCg0K Ly8gRWFnZXIgY29uc3RydWN0aW9uIHdpdGggaGFyZGNvZGVkIHNpemUNCmJ5dGVbXSBzdWZmaXhC eXRlcyA9IG5ldyBieXRlWzEyOF07DQoNCuKApiAgLy8gRmFzdCBmb3J3YXJkIHRvIHRoZSBsb2Fk QmxvY2soKSBtZXRob2QNCuKApg0KaWYgKHN1ZmZpeEJ5dGVzLmxlbmd0aCA8IG51bVN1ZmZpeEJ5 dGVzKSB7DQogIC8vIElmIHdlIG5lZWQgdG8gcmVhZCBtb3JlIHRoYW4gMTI4IGJ5dGVzLCBpbmNy ZWFzZSB0aGUgYXJyYXnigKYNCiAgLy8g4oCmIG9yIG1vcmUgcHJlY2lzZWx5LCB0aHJvdyBhd2F5 IHRoZSBvbGQgYXJyYXkgYW5kIGFsbG9jYXRlIGFub3RoZXIgb25lDQogIHN1ZmZpeEJ5dGVzID0g bmV3IGJ5dGVbQXJyYXlVdGlsLm92ZXJzaXplKG51bVN1ZmZpeEJ5dGVzLCAxKV07DQp9DQoNCkZy b20gdGhpcyBjb2RlLCBpdOKAmXMgY2xlYXIgdGhhdCB0d28gbmVnYXRpdmUgdGhpbmdzIGNhbiBo YXBwZW46DQoNCiAgMS4NCnN1ZmZpeEJ5dGVzIG1heSBub3QgYmUgdXNlZCBhdCBhbGwgKHRoZSBs b2FkQmxvY2soKSBtZXRob2QgbWF5IG5vdCBiZSBjYWxsZWQgb3IgbWF5IHJldHVybiBlYXJseSku IFRoZSBtZW1vcnkgdXNlZCBieSB0aGUgYXJyYXkgd2lsbCBiZSBjb21wbGV0ZWx5IHdhc3RlZA0K ICAyLg0KSWYgbnVtU3VmZml4Qnl0ZXMgaGFwcGVucyB0byBiZSBncmVhdGVyIHRoYW4gMTI4LCB0 aGUgY3VycmVudCBlYWdlcmx5IGFsbG9jYXRlZCBhcnJheSB3aWxsIGJlIGRpc2NhcmRlZC4gVGhl IG1lbW9yeSB1c2VkIGJ5IGl0IHdpbGwgYmUgd2FzdGVkLg0KDQpBbmQgYXMgb3VyIGhlYXAgZHVt cCBpbGx1c3RyYXRlcywgdGhlc2UgdGhpbmdzIGxpa2VseSBoYXBwZW4gdmVyeSBvZnRlbi4gVG8g YWRkcmVzcyB0aGlzIHByb2JsZW0sIGl0IHdvdWxkIGJlIHN1ZmZpY2llbnQgdG8gY2hhbmdlIHRo ZSBjb2RlIGFzIGZvbGxvd3M6DQoNCi8vIEF2b2lkIGVhZ2VyIGNvbnN0cnVjdGlvbg0KYnl0ZVtd IHN1ZmZpeEJ5dGVzOw0K4oCmDQppZiAoc3VmZml4Qnl0ZSA9PSBudWxsIHx8IHN1ZmZpeEJ5dGVz Lmxlbmd0aCA8IG51bVN1ZmZpeEJ5dGVzKSB7DQogIC8vIElmIHdlIG5lZWQgdG8gcmVhZCBtb3Jl IHRoYW4gMTI4IGJ5dGVzLCBpbmNyZWFzZSB0aGUgYXJyYXnigKYNCiAgLy8g4oCmIG9yIG1vcmUg cHJlY2lzZWx5LCB0aHJvdyBhd2F5IHRoZSBvbGQgYXJyYXkgYW5kIGFsbG9jYXRlIGFub3RoZXIg b25lDQogIHN1ZmZpeEJ5dGVzID0gbmV3IGJ5dGVbQXJyYXlVdGlsLm92ZXJzaXplKG51bVN1ZmZp eEJ5dGVzLCAxKV07DQp9DQoNCk5vdGUgdGhhdCByZWR1Y2luZyBtZW1vcnkgYWxsb2NhdGlvbiBy YXRlIHJlc3VsdHMgcHJpbWFyaWx5IGluIHJlZHVjdGlvbiBvZiBDUFUgdXNhZ2UgYW5kL29yIGlt cHJvdmVkIGxhdGVuY3kuIFRoYXTigJlzIGJlY2F1c2UgZWFjaCBvYmplY3QgYWxsb2NhdGlvbiBy ZXF1aXJlcyB3b3JrIGZyb20gdGhlIEpWTSAtIHVwZGF0aW5nIHBvaW50ZXJzIGFuZCBzZXR0aW5n IGFsbCBvYmplY3QgYnl0ZXMgdG8gemVyby4gQW5kIHRoZW4gR0NpbmcgdGhlc2Ugb2JqZWN0cyBp cyBhbHNvIENQVS1pbnRlbnNpdmUsIGFuZCByZXN1bHRzIGluIHBhdXNpbmcgYXBwIHRocmVhZHMs IHdoaWNoIGFmZmVjdHMgbGF0ZW5jeS4gSG93ZXZlciwgb25jZSBtZW1vcnkgYWxsb2NhdGlvbiBy YXRlIGlzIHJlZHVjZWQsIGl0IG1heSBiZSBwb3NzaWJsZSB0byBhbHNvIHJlZHVjZSB0aGUgSlZN IGhlYXAgbWVtb3J5LiBTbyB0aGUgdWx0aW1hdGUgd2luIGlzIGdvaW5nIHRvIGJlIGluIGJvdGgg Q1BVIGFuZCBtZW1vcnkuDQoNClBsZWFzZSBsZXQgdXMga25vdyBob3cgd2UgY2FuIHByb2NlZWQg d2l0aCB0aGlzLiBUaGUgcHJvcG9zZWQgY2hhbmdlIGlzIHRyaXZpYWwsIGFuZCB0aHVzIG1heWJl IGl0IGNhbiBiZSBkb25lIHF1aWNrbHkgYnkgc29tZSBlc3RhYmxpc2hlZCBMdWNlbmUgY29udHJp YnV0b3IuIElmIG5vdCwgSSBndWVzcyBJIGNhbiBtYWtlIGl0IG15c2VsZiBhbmQgdGhlbiBob3Bl IHRoYXQgaXQgZ29lcyB0aHJvdWdoIHJldmlldyBhbmQgcmVsZWFzZSBpbiByZWFzb25hYmxlIHRp bWUuDQoNCk1pc2hhDQoNCg== --_000_CH9PR21MB5856033F2721A8D14310BAA8C29AACH9PR21MB5856namp_--