VGhhbmtzIGFnYWluIGZvciB0aGUgcG9pbnRlcnMsIEkgYW0gdXNpbmcgdGhlIGRlZmF1bHQgbGlu a2VyIHNjcmlwdCwgSQ0KZGlkIHRyeSByZW1vdmluZyB0aGUgcGFnZXMgYW5kIENPREVQQUdFIGFu ZCBTRUNUSU9OIHBhcnRzIGZvciB0aGUNCmFkZGl0aW9uYWwgYmFua3MsIGJ1dCB0aGVuIEkgY291 bGQgbm90IGRlYnVnIHRoZSBwYXJ0IGFzIGl0IGNvbXBsYWluZWQNCmFib3V0IHdhbnRpbmcgdG8g dXNlIDB4MTh4eCBmb3Igc29tZSBkZWJ1ZyBlbnRyaWVzIChzb3JyeSBJIGRvbid0DQpyZW1lbWJl ciB0aGUgbWVzc2FnZSBmdWxseSkgc28gSSByZXZlcnRlZCBteSBjaGFuZ2VzLg0KDQpJIGhhdmUg bG9va2VkIGF0IHRoZSBtYXAgZmlsZSwgaXQgaXMgd2hhdCBzdGFydGVkIG1lIGFsb25nIHRoZSAi SSB0aGluaw0KSSdtIGJlaW5nIGJ1cm5lZCBieSBwYWdpbmciIHBhdGgsIEkgd2lsbCBsb29rIGFn YWluIGFuZCB3aXRoIHRoaXMgbmV3DQprbm93bGVkZ2UsIEkgY2FuIHNlZSB3aGF0IGlzIGhhcHBl bmluZy4uLiBJdCB3b3VsZCBhcHBlYXIgdGhhdCBkZWJ1Zw0KYnVpbGRzIGFyZSBhIGxpdHRsZSBi aWdnZXIsIHNvIHdoaWxlIEkgd2FzIHNlZWluZyB0aGUgaXNzdWUgaW4gdGhlDQpkZWJ1Z2dlciwg SSB3b3VsZG4ndCBoYXZlIHNlZW4gaXQgaW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQuIE5vdyBJIGFt IGluDQp0aGUgcHJvY2VzcyBvZiBmaXhpbmcgdGhlIGNvZGUgdG8gbWFrZSBpdCBtb3JlIHJvYnVz dCwgc28gaG9wZWZ1bGx5IHRoaXMNCndvbid0IGltcGFjdCBtZSBhZ2Fpbi4NCg0KSSBndWVzcyBi ZWZvcmUgbm93IG15IGNvZGUgaGFzIGJlZW4gc21hbGwgZW5vdWdoIHRvIGZpdCBpbiBvbmUgcGFn ZSBhbmQNCm5vbiByZWxvY2F0YWJsZSBzbyBJIGRpZG4ndCBnZXQgdGhlIGZ1bGwgUEFHRVNFTCBl eHBlcmllbmNlLiBBcyBmb3IgbXkNCkJURlNTIGNhbGxzLCBJIGVuZGVkIHVwIGFkZGluZyBhICJo b29rIiBDQUxMIGludG8gdGhlIHNhbWUgQ09ERSBzZWN0aW9uDQphcyB0aGUgaW50ZXJydXB0IGhh bmRsZXIsIHdoaWNoIGRvZXMgYSBQQUdFU0VMIGZvciB0aGUgdGFyZ2V0IENBTEwsIHRoZW4NCmRv ZXMgYSBQQUdFU0VMIGJhY2sgdG8gdGhlIGludGVycnVwdCBoYW5kbGVyIGJlZm9yZSByZXR1cm5p bmcuIFdpdGggdGhlDQpkZWZhdWx0IGxrciBmaWxlLCBpZiBJIGFtIHJlYWRpbmcgaXQgcmlnaHQs IGVhY2ggQ09ERVBBR0UgaGFzIGEgc3RhcnQNCmFuZCBlbmQgdGhhdCBjb3JyZXNwb25kcyB3aXRo IHRoZSBwYWdlcyBvbiB0aGUgY2hpcCBoZW5jZSwgZWFjaCBDT0RFDQpsdW1wIGluIHRoZSBzb3Vy Y2Ugd2lsbCBiZSBpbiB0aGUgc2FtZSBwYWdlLiBJIGd1ZXNzIGlmIEkgbmVlZGVkIGEgYmxvY2sN CmJpZ2dlciB0aGFuIG9uZSBwYWdlLCBJIHdvdWxkIGhhdmUgdG8gZWRpdCB0aGUgbGtyIGZpbGUg dG8gY29tYmluZSBzb21lDQpDT0RFUEFHRSBzZWN0aW9ucyAob3IgcGFydHMgb2YgdGhlbSkgdG9n ZXRoZXIuIElNSE8gdGhhdCB3b3VsZCBiZSBhbg0KYWJvbWluYXRpb24gYXMgYSBiZXR0ZXIgc29s dXRpb24gd291bGQgYmUgdG8gc2NhdHRlciBzb21lIG5ldyBDT0RFDQpibG9ja3MgaW4gdGhlcmUg YW5kIGxldCB0aGUgbGlua2VyIHRha2UgY2FyZSBvZiBpdC4NCg0KVGhhbmtzIGFnYWluIGZvciB0 aGUgZGlyZWN0aW9uLCB0aGlzIGFsbCBtYWtlcyBzZW5zZSBub3chDQoNCkJUVyBJIHVzZWQgVk1T IChvbiBhbiBvbGQgVkFYODgwMCkgaW4gdW5pdmVyc2l0eSwgYW5kIGluIHRoZSBsYXN0IGNvdXBs ZQ0Kb2YgeWVhcnMgZ290IGEgaG9iYnkgbGljZW5zZSBmb3IgT3BlblZNUywgSSBkaWRuJ3QgdXNl IGl0IG11Y2ggYWZ0ZXINCmluc3RhbGxpbmcgdGhlIGJhc2Ugc3lzdGVtIG9uIHRoZSBlbXVsYXRv ciwgYnV0IGl0IGRpZCBicmluZyBiYWNrIGEgZmV3DQptZW1vcmllcyEgSSBzdGlsbCBtYWludGFp biB0aGF0IHRoZSBWTVMgZmlsZXN5c3RlbSBhdXRvbWF0aWMgZmlsZQ0KdmVyc2lvbmluZyBpcyBv bmUgb2YgbXkgYWxsIHRpbWUgZmF2b3VyaXRlIGZlYXR1cmVzLCBhbmQgb25lIHRoYXQgSSBoYXZl DQpzdGlsbCB5ZXQgdG8gc2VlIG9uIG1vcmUgbW9kZXJuIGZpbGVzeXN0ZW1zISBUaGVzZSBkYXlz IEkgZG8gbXkNCmVuZ2luZWVyaW5nIGZvciBXaW5kb3dzIGFuZCBMaW51eCwgd2l0aCBhIHNwYXR0 ZXJpbmcgb2YgUElDIGFuZCBBbmRyb2lkDQpmb3IgZ29vZCBtZWFzdXJlLg0KDQoNCg0KT24gMjAx NS0wMS0xMyAxMDoxMiwgSmFuLUVyaWsgU8O2ZXJob2xtIHdyb3RlOg0KPj4gSSB0aGluayBJIHdh cyB1bmRlciB0aGUgaW1wcmVzc2lvbiB0aGF0IGVhY2ggQ09ERSBibG9jayB3b3VsZCBub3QNCj4+ IHRyYXZlcnNlIGEgcGFnZSBib3VuZGFyeS4uLg0KPg0KPiBBIENPREUgYmxvY2sgd2lsbCBhbHdh eXMgZ28gaW50byBvbmx5IG9uZSAgIkNPREVQQUdFIiBhcyBkZWZpbmVkIGluDQo+IHRoZSBsaW5r ZXIgc2NyaXB0ICgxNmY4NzZfZy5sa3IpLg0KPiBOb3csIGJ5IGRlZmF1bHQgKG9mIHlvdSBoYXZl IG5vdCBlZGl0ZWQgdGhlIExLUiBmaWxlKSwgZWFjaCBtZW1vcnkNCj4gcGFnZSBoYXMgaXRzIG93 biBDT0RFUEFHRSBkZWZpbmVkLA0KPiBzbyB5ZXMsIGluIHRoZSBkZWZhdWx0IGNhc2UsIHlvdSBh cmUgcmlnaHQuIDotKQ0KPg0KPiBEbyB0YWtlIGEgbG9vayBpbiB0aGUgTEtSIGZpbGUsIHRoYXQg bWlnaHQgZXhwbGFpbiBzb21lIG9mIHRoZSB0aGluZ3MNCj4gImdvaW5nIG9uIi4NCj4NCj4+IC4u LmJ1dCB0aGUgbGlua2VyIGNvdWxkIHNjYXR0ZXIgdGhlIGluZGl2aWR1YWwgYmxvY2tzIGFtb25n c3QgdGhlDQo+PiBwYWdlcyBhdCB3aWxsLg0KPg0KPiBBbmQgZXhhY3RseSBob3cgaXMgY2xlYXIg ZnJvbSB0aGUgTUFQIGZpbGUuDQo+IEl0IGlzIGEgYml0IHdlaXJkIHRoYXQgdGhlIGxpbmtlciB1 c2VzIG11bHRpcGxlIHBhZ2VzIGlmIGl0IGRvZXNu4oCZdA0KPiBuZWVkIHRvIQ0KPiAqKiBEbyBj aGVjayB0aGUgTUFQIGZpbGUhICoqDQo+DQo+PiBTb3J0IG9mIGhvdyBhbGwgdGhlIHZhcmlhYmxl cyBpbiBhIG5hbWVkIFVEQVRBIGJsb2NrIGFyZSBndWFyYW50ZWVkIHRvDQo+PiBiZSBvbiB0aGUg c2FtZSBiYW5rLCBidXQgZWFjaCBVREFUQSBsdW1wIGlzIGJhbmtlZCBhdCB0aGUgd2hpbSBvZiB0 aGUNCj4+IGxpbmtlci4NCj4+IFRoaXMgd291bGQgYWxsb3cgY2FsbHMgaW5zaWRlIHRoZSBDT0RF IGJsb2NrIHRvIGJlIFBDTEFUSCBpZ25vcmFudA0KPj4gKGFzc3VtaW5nIFBDTEFUSCB3YXMgc2V0 IGNvcnJlY3RseSBvbiBlbnRyeSkgYnV0IGdvaW5nIG91dHNpZGUgdGhlDQo+PiBibG9jayBtaWdo dCBuZWVkDQo+PiBhIFBBR0VTRUwgYW5kIHNob3VsZCBoYXZlIG9uZSBpbiBwcm90ZWN0aW9uIGZy b20gdGhlIGxpbmtlciBtb3ZpbmcNCj4+IHN0dWZmIGFyb3VuZC4NCj4NCj4gSSB0aGluayB0aGF0 IGlzIHJpZ2h0LCB5ZXMuDQo+DQo+PiBJIGFtIGEgcHJvZmVzc2lvbmFsIHNvZnR3YXJlIGVuZ2lu ZWVyIG9uICJiaWcgY29tcHV0ZXJzIiBhbmQgdGhlDQo+PiBFRS9QSUMgcHJvZ3JhbW1pbmcgaXMg YSBob2JieSBmb3IgbWUuDQo+DQo+IFNhbWUgaGVyZSwgcHJpbWFyaWx5IG9uIE9wZW5WTVMgKG9y IFZNUywgb25jZSBmcm9tIERpZ2l0YWwgRXF1aXBtZW50DQo+IENvcnApLg0KPiBBIGNvbXBsZXRl bHkgZGlmZmVyZW50IGVudmlyb25tZW50LCBvZiBjb3Vyc2UuLi4gOi0pDQo+DQo+IEphbi1Fcmlr Lg0KPg0KPg0KPg0KPiBPbiAyMDE1LTAxLTEzIDA4OjM4LCBKYW4tRXJpayBTw7ZlcmhvbG0gd3Jv dGU6DQo+Pj4gUEFHRVNFTCBpcyBuZWVkZWQgdG8gc2V0IFBDTEFUSCBiZWZvcmUgZWFjaCBHT1RP L0NBTEwgdW5sZXNzIHRoZQ0KPj4+IHRhcmdldCBpcyBpbiB0aGUgc2FtZSBDT0RFIGJsb2NrLg0K Pj4NCj4+IE5vLg0KPj4gUEFHRVNFTCBpcyBuZWVkZWQgdG8gc2V0IFBDTEFUSCBiZWZvcmUgZWFj aCBHT1RPL0NBTEwgdW5sZXNzIHRoZQ0KPj4gdGFyZ2V0IGlzIGluIHRoZSBzYW1lICptZW1vcnkg cGFnZSouDQo+PiBNdWx0aXBsZSBDT0RFIHNlZ21lbnRzIGNhbiB2ZXJ5IHdlbGwgZ28gaW50byB0 aGUgc2FtZSBtZW1vcnkgcGFnZSwgaWYNCj4+IHRoZXkgZml0LCBzbyB0byBzcGVhay4NCj4+IEl0 IGlzIHVwIHRvIHRoZSBsaW5rZXIgdG8gZGVjaWRlLiBBbmQgaWYgdGhleSBkbyBub3QgZml0LCBh YnNvbHV0ZQ0KPj4gY29kZSB3aWxsIG5vdCBtYWtlIHRoZW0gZml0IGVpdGhlci4uLg0KPj4NCj4+ PiBUaGUgY2FsbCBpbnRvIGludGVycnVwdCBkb2VzIE5PVCBjaGFuZ2UgUENMQVRILCBzbyB0aGVy ZSBpcyBhIG5lZWQgdG8NCj4+PiBkbyBpdCBfd2l0aGluXyB0aGUgaGFuZGxlci4NCj4+DQo+PiBU aGF0IEkgdGhpbmsgaXMgY29ycmVjdC4gWW91IGFsc28gaGF2ZSB0byByZXNldCBQQ0xBVEggYmVm b3JlIFJFVEZJRSwNCj4+IG90aGVyd2lzZSB0aGUgImludGVycnVwdGVkIg0KPj4gcm91dGluZSB3 aWxsIGdldCBjb25mdXNlZC4gU2VlIGFsc28gYmVsb3cgcmVnYXJkaW5nIHRoZSBuZXdlcg0KPj4g UElDMTZGMXh4eC4NCj4+DQo+Pj4gVGhlIG9ubHkgd2F5IHRvIGF2b2lkIHRoZXNlIGlzc3VlcyBp cyB0byB1c2UgYWJzb2x1dGUgY29kZS4uLg0KPj4NCj4+IE5vLCBhYnNvbHV0ZWx5IG5vdC4gOi0p DQo+PiBSb3V0aW5lcyB0aGF0IHdpbGwgaGF2ZSBhIGxvdCBvZiBDQUxMcyBpbiBiZXR3ZWVuIHRo ZW0gY2FuIGJlIGluIHRoZQ0KPj4gc2FtZSBDT0RFIHNlZ21lbnQuDQo+PiBUaGF0IGF2b2lkcyBh bGwgUENMQVRIIGhhbmRsaW5nIGFzIGxvbmcgYXMgeW91IHN0YXkgaW4gdGhlc2Ugcm91dGluZXMu DQo+Pg0KPj4+IC4uLihvciB0byB3cml0ZSBjb2RlIGluIGEgd2F5IHRoYXQgcmVtb3ZlcyBhbGwg b2YgdGhlIHJlbG9jYXRhYmxlDQo+Pj4gY29kZQ0KPj4+IGJlbmVmaXRzKQ0KPj4NCj4+IFRha2lu ZyBjYXJlIG9mIFBDTEFUSCBpcyBtb3N0bHkgdGhlIHNhbWUgbm8gbWF0dGVyIGlmIG9uZSB1c2Ug YWJzb2x1dGUNCj4+IG9yIHJlbG9jYXRhYmxlIGNvZGUuDQo+PiBUaGVyZSBhcmUgb3RoZXIgaHVn ZSBiZW5lZml0cyB3aXRoIHJlbG9jYXRhYmxlIGNvZGUgc3VjaCBhcyBhdXRvbWF0aWMNCj4+IGFs bG9jYXRpb24gb2YgdmFyaWFibGVzLg0KPj4NCj4+IEZpbmVseSwgbm90ZSBhbHNvIHRoYXQgdGhl IG1vcmUgbW9kZXJuIFBJQzE2RjF4eHggZmFtaWx5IGhhdmUgYQ0KPj4gc2xpZ2h0bHkgYmV0dGVy IGhhbmRsaW5nIG9mIHRoaXMuDQo+PiBTdWNoIGFzIGF1dG9tYXRpYyBzYXZlL3Jlc3RvcmUgb2Yg UENMQVRIIGF0IGludGVycnVwdHMuIElmIHlvdSBhcmUNCj4+IGRvaW5nIHNvbWV0aGluZyBuZXcg dGhlcmUgaXMgbGl0dGxlIHJlYXNvbiB0byB1c2UgdGhlIG9sZCBQSUMxNkY4NzZBLg0KPj4gSXQg YWxzbyBwcm9iYWJseSBjb3N0cyBtb3JlIHRoZW4gdGhlIHNpbWlsYXIgUElDMTZGMXh4eCBtb2Rl bC4gOi0pDQo+Pg0KPj4gSmFuLUVyaWsuDQo+Pg0KPj4gLS0tLS1VcnNwcnVuZ2xpZ3QgbWVkZGVs YW5kZS0tLS0tDQo+PiBGcsOlbjogcGljbGlzdC1ib3VuY2VzQG1pdC5lZHUgW21haWx0bzpwaWNs aXN0LWJvdW5jZXNAbWl0LmVkdV0gRsO2cg0KPj4gQW50aG9ueSBUb2Z0DQo+PiBTa2lja2F0OiBk ZW4gMTMgamFudWFyaSAyMDE1IDE0OjA1DQo+PiBUaWxsOiBwaWNsaXN0QG1pdC5lZHUNCj4+IMOE bW5lOiBSZTogU1Y6IFtQSUNdIFJlbG9jYXRhYmxlIGNvZGUsIHBhZ2VzZWwsIGNhbGwgYW5kIGdv dG8NCj4+DQo+PiBUaGFuayB5b3UgSmFuLUVyaWssDQo+Pg0KPj4gU28gbXkgdW5kZXJzdGFuZGlu ZyBiYXNlZCBvbiB3aGF0IEkgaGF2ZSByZWFkIGFuZCB3aGF0IHlvdSBzYXkgaGVyZS4uLg0KPj4N Cj4+IFBBR0VTRUwgaXMgbmVlZGVkIHRvIHNldCBQQ0xBVEggYmVmb3JlIGVhY2ggR09UTy9DQUxM IHVubGVzcyB0aGUNCj4+IHRhcmdldCBpcyBpbiB0aGUgc2FtZSBDT0RFIGJsb2NrLiBUaGUgY2Fs bCBpbnRvIGludGVycnVwdCBkb2VzIE5PVA0KPj4gY2hhbmdlIFBDTEFUSCwgc28gdGhlcmUgaXMg YSBuZWVkIHRvIGRvIGl0IF93aXRoaW5fIHRoZSBoYW5kbGVyLg0KPj4NCj4+IFJFVFVSTi9SRVRG SUUgZG9uJ3QgdXNlIFBDTEFUSCwgdGhlIGVudGlyZSBhZGRyZXNzIGNvbWVzIGZyb20gdGhlDQo+ PiBzdGFjay4NCj4+DQo+PiBUaGUgb25seSB3YXkgdG8gYXZvaWQgdGhlc2UgaXNzdWVzIGlzIHRv IHVzZSBhYnNvbHV0ZSBjb2RlIChvciB0bw0KPj4gd3JpdGUgY29kZSBpbiBhIHdheSB0aGF0IHJl bW92ZXMgYWxsIG9mIHRoZSByZWxvY2F0YWJsZSBjb2RlIGJlbmVmaXRzKQ0KPj4NCj4+IEEgcmVt YWluaW5nIHF1ZXN0aW9uLi4uIGRvZXMgUkVUVVJOL1JFVEZJRSByZXNldCBQQ0xBVEg/IEluIHRo ZSBjYXNlDQo+PiBvZiBSRVRVUk4sIGl0IGNhbiBiZSByZXNldCAoYXMgeW91IGtub3cgd2hlbiB0 aGUgQ0FMTCBoYXBwZW5lZCkgYnV0IGluDQo+PiB0aGUgY2FzZSBvZiBSRVRGSUUsIEkgZ3Vlc3Mg dGhhdCB5b3Ugc3RvcmUgdGhlIFBDTEFUSCByZWdpc3RlciBqdXN0DQo+PiBsaWtlIFcsIEZTUiBh bmQgU1RBVFVTPw0KPj4NCj4+IE9uIDIwMTUtMDEtMTMgMDU6NTEsIEphbi1FcmlrIFPDtmVyaG9s bSB3cm90ZToNCj4+PiBIaS4NCj4+PiBZb3UgaGF2ZSB0byByZWFkIG9mIG9uIHRoZSBoYW5kbGlu ZyBvZiBhZGRyZXNzZXMgaW4gZGlmZmVyZW50IHdheXMuDQo+Pj4NCj4+PiBTb21lIHRoaW5ncyAo R09UTywgQ0FMTC4uLikgb25seSBjb2RlcyB0aGUgbG93ZXIgcGFydCBvZiB0aGUNCj4+PiBlZmZl Y3RpdmUgYWRkcmVzcyBpbiB0aGUgaW5zdHJ1Y3Rpb24gYW5kIGZldGNoZXMgdGhlIGhpZ2hlciBi aXRzIGZyb20NCj4+PiBQQ0xBVEguDQo+Pj4NCj4+PiBTb21lIG90aGVyIHRoaW5ncyAobGlrZSBh biBSRVRVUk4gb3IgUkVURklFKSBhbHdheXMgZmV0Y2hlcyB0aGUgZnVsbA0KPj4+IHJldHVybiBh ZGRyZXNzIGZyb20gdGhlIHN0YWNrIGFuZCBkb2VzIG5vdCB1c2UgUENMQVRILg0KPj4+DQo+Pj4+ IGJ1dCB0aGlzIHdpbGwgYnJlYWsgdGhlIEJURlNTIGFzIHRoZXJlIHdpbGwgYmUgbW9yZSB0aGFu IG9uZQ0KPj4+PiBpbnN0cnVjdGlvbg0KPj4+IHRoZXJlLi4uDQo+Pj4NCj4+PiBBIHdlbGwta25v d24gInByb2JsZW0iLi4uIDotKSBZb3Ugc2ltcGx5IGhhcyB0byB3b3JrIGFyb3VuZCBpdC4NCj4+ Pg0KPj4+PiB0aGUgdGFyZ2V0IGlzIG5lYXJieSwgc28gSSdtIGJlIHZlcnkgc3VycHJpc2VkIHRo YXQgdGhleSBhcHBlYXIgaW4NCj4+PiBkaWZmZXJlbnQgcGFnZXMuDQo+Pj4NCj4+PiBOb3csIHRo ZSBHT1RPIHVzZXMgUENMQVRIIHdoaWNoIHByb2JhYmx5IGlzIHN0aWxsIHBvaW50aW5nIHRvIHRo ZQ0KPj4+IHBhZ2UgZnJvbSB3aGVyZSB0aGUgb3JpZ2luYWwgQ0FMTCB3YXMgbWFkZS4gUENMQVRI IGlzIG5vdCBjaGFuZ2VkIGJ5DQo+Pj4gdGhlIENBTEwuDQo+Pj4gWW91IGNhbg0KPj4+IHN0YXJ0 IHlvdXIgc3Vicm91dGluZSBieSBzZXR0aW5nIFBDTEFUSCB1c2luZyB0aGUgdmFsdWUgb2YgdGhl DQo+Pj4gc3ltYm9sL25hbWUgb2YgdGhlIG5ldyBjb2RlLWJsb2NrLiBUaGF0IHdheSwgUENMQVRI IHdpbGwgYWx3YXlzIGJlDQo+Pj4gY29ycmVjdCBubyBtYXR0ZXIgd2hpY2ggcGFnZSB0aGUgYWN0 dWFsIHJvdXRpbmUgaGFwcGVucyB0byBlbmQgdXAgaW4uDQo+Pj4NCj4+Pj4gRnJvbSB3aGF0IEkg aGF2ZSByZWFkLCBJIG5lZWQgdG8gUEFHRVNFTCBiZWZvcmUgZWFjaCBHT1RPLi4uDQo+Pj4NCj4+ PiBJdCdzIGVub3VnaCBpZiB5b3Ugc28gaXQgb25jZSBhdCB0aGUgc3RhcnQgb2YgdGhlIENPREUg YmxvY2sgKG9yIGF0DQo+Pj4gZWFjaCBlbnRyeS1wb2ludCB0byB0aGUgQ09ERSBibG9jaywgaWYg dGhlcmUgYXJlIG11bHRpcGxlIHBvc3NpYmxlDQo+Pj4gcG9pbnQgdG8gQ0FMTCkuIFRoZW4gYWxz byBhZnRlciBhIENBTEwgaW4gdGhhdCBjb2RlIGl0c2VsZiwgdGhlDQo+Pj4gcm91dGluZXMgQ0FM TCdlZCBjYW4gYWxzbyBoYXZlIGNoYW5nZWQgUENMQVRILg0KPj4+DQo+Pj4gQnV0IG9uY2UgUENM QVRIIGlzIHNldHVwLCB5b3UgY2FuIEdPVE8gYXMgbXVjaCBhcyB5b3UgbGlrZSAqd2l0aGluKg0K Pj4+IHRoZSBzYW1lIHBhZ2UuDQo+Pj4NCj4+Pj4gSXMgdGhlcmUgYW55dGhpbmcgSSBjYW4gZG8g dG8gdGhlIGxpbmtlciBzY3JpcHQgdG8gZW5zdXJlIHRoYXQgdGhlDQo+Pj4+IGNvZGUgaXMNCj4+ PiBwdXQgaW4gdGhlIHNhbWUgcGFnZT8NCj4+Pg0KPj4+IFR3byB0aGluZ3MgcG9wcyB1cC4NCj4+ PiAtIFVzZSB0aGUgc2FtZSBDT0RFIHNlZ21lbnQuDQo+Pj4gLSBIYXJkY29kZSBhIG1lbW9yeSBz ZWN0aW9uIGluIHRoZSBDT0RFIGRpcmVjdGl2ZS4NCj4+Pg0KPj4+IEphbi1FcmlrLg0KPj4+IC0t LS0tVXJzcHJ1bmdsaWd0IG1lZGRlbGFuZGUtLS0tLQ0KPj4+IEZyw6VuOiBwaWNsaXN0LWJvdW5j ZXNAbWl0LmVkdSBbbWFpbHRvOnBpY2xpc3QtYm91bmNlc0BtaXQuZWR1XSBGw7ZyDQo+Pj4gQW50 aG9ueSBUb2Z0DQo+Pj4gU2tpY2thdDogZGVuIDEzIGphbnVhcmkgMjAxNSAwMToyNw0KPj4+IFRp bGw6ICdNaWNyb2NvbnRyb2xsZXIgZGlzY3Vzc2lvbiBsaXN0IC0gUHVibGljLicNCj4+PiDDhG1u ZTogW1BJQ10gUmVsb2NhdGFibGUgY29kZSwgcGFnZXNlbCwgY2FsbCBhbmQgZ290bw0KPj4+DQo+ Pj4gSGV5IGZvbGtzLCBJIGFtIG1pZHdheSB0aHJvdWdoIHdyaXRpbmcgbXkgZmlyc3QgcmVsb2Nh dGFibGUgY29kZQ0KPj4+IHByb2plY3QgZm9yIGEgMTZmODc2YSwgYW5kIGhhdmUgbWFuYWdlZCB0 byBjb25mdXNlIG15c2VsZg0KPj4+IHRob3JvdWdobHkuLi4NCj4+Pg0KPj4+IFRoZSBwcm9ibGVt IHN0YXJ0ZWQgd2hlbiBJIGFkZGVkIHNvbWUgbmV3IGNvZGUgKGluIGEgbmV3IENPREUgYmxvY2sp DQo+Pj4gYW5kIG15IGludGVycnVwdCBoYW5kbGVyIHN0YXJ0ZWQgbWlzYmVoYXZpbmcuIFRoZSBj b2RlIHRoYXQgaXMNCj4+PiBleGhpYml0aW5nIHRoZSBwcm9ibGVtIGlzIGhlcmUNCj4+Pg0KPj4+ IE5PVF9UTVIwDQo+Pj4NCj4+PiAgICAgIEJURlNDIFBJUjEsIEFESUYNCj4+PiAgICAgIENBTEwg SGFuZGxlQWRfUg0KPj4+DQo+Pj4gICAgICBCQU5LU0VMIFBJRTENCj4+PiAgICAgIEJURlNTIFBJ RTEsIFRYSUUNCj4+PiAgICAgIEdPVE8gTk9UX1RYSU5HDQo+Pj4NCj4+PiAgICAgIEJBTktTRUwg UElSMQ0KPj4+ICAgICAgQlRGU0MgUElSMSwgVFhJRg0KPj4+ICAgICAgQ0FMTCBTZW5kTmV4dF9S DQo+Pj4NCj4+PiBOT1RfVFhJTkcNCj4+Pg0KPj4+IFRoZSBjYWxsICJHT1RPIE5PVF9UWElORyIg YXBwZWFyZWQgdG8gYnJhbmNoIGludG8gYW4gdW5yZWxhdGVkDQo+Pj4gZnVuY3Rpb24sIHVzaW5n IHRoZSBkZWJ1Z2dlciAoUElDS2l0IDMpIEkgZGV0ZXJtaW5lZCB0aGF0IHRoZSBwcm9ncmFtDQo+ Pj4gY291bnRlciBpbiB0aGUgaW50ZXJydXB0IGhhbmRsZXIgaXMgMHgxOD8/IHdoaWNoIGRvZXNu J3Qgc2VlbSByaWdodCwNCj4+PiBJIHdvdWxkIGV4cGVjdCBpdCB0byBiZSAweDAwPz8gYXMgdGhl IGludGVycnVwdCBoYW5kbGVyIGlzIGludHJvZHVjZWQNCj4+PiB3aXRoIElSUSBDT0RFIDB4MDA0 Lg0KPj4+IFRoZQ0KPj4+IEdPVE8gY2hhbmdlcyB0aGUgbG93ZXIgYnl0ZSBvZiB0aGUgcHJvZ3Jh bSBjb3VudGVyLCB3aGljaCB3aGVuDQo+Pj4gY29tYmluZWQgd2l0aCBQQ0xBVEggaXMgdGhlIGFk ZHJlc3MgaXQganVtcHMgdG8uIEFmdGVyIGEgYml0IG9mDQo+Pj4gcmVzZWFyY2gsIGl0IGFwcGVh cnMgdGhhdCB0aGUgaXNzdWUgaXMgcmVsYXRlZCB0byB0aGUgcHJvZ3JhbSBwYWdlLg0KPj4+IFdo aWNoIGlzIHdoZXJlIHRoZSBjb25mdXNpb24gc2hvd3MgdXAuLi4NCj4+Pg0KPj4+ICBGcm9tIHdo YXQgSSBoYXZlIHJlYWQsIEkgbmVlZCB0byBQQUdFU0VMIGJlZm9yZSBlYWNoIEdPVE8sIGJ1dCB0 aGlzDQo+Pj4gd2lsbCBicmVhayB0aGUgQlRGU1MgYXMgdGhlcmUgd2lsbCBiZSBtb3JlIHRoYW4g b25lIGluc3RydWN0aW9uDQo+Pj4gdGhlcmUsIGJ1dCBpbiB0aGlzIGNhc2UsIHRoZSB0YXJnZXQg aXMgbmVhcmJ5LCBzbyBJJ20gYmUgdmVyeQ0KPj4+IHN1cnByaXNlZCB0aGF0IHRoZXkgYXBwZWFy IGluIGRpZmZlcmVudCBwYWdlcy4gQXMgZmFyIGFzIEkgY2FuIHRlbGwNCj4+PiBlYWNoIENPREUg YmxvY2sgaXMgZ3VhcmFudGVlZCB0byBiZSBpbiBhIHNpbmdsZSBwYWdlLiBEbyBJIG5lZWQgdG8N Cj4+PiBQQUdFU0VMIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciBldmVuIHRob3VnaCBJIGFtIGFscmVh ZHkgdGhlcmU/IElmIEkNCj4+PiBkbywgd2lsbCB0aGUgUkVURklFIHdvcmsgcHJvcGVybHk/DQo+ Pj4NCj4+PiBUaGUgY3VycmVudCBjb2RlIHNpemUgaXMgYXJvdW5kIDYlIG9mIHRoZSBwcm9ncmFt IG1lbW9yeSwgc28gd2h5IGlzDQo+Pj4gdGhlIGxpbmtlciB1c2luZyBtb3JlIHRoYW4gb25lIHBh Z2U/IElzIHRoZXJlIGFueXRoaW5nIEkgY2FuIGRvIHRvDQo+Pj4gdGhlIGxpbmtlciBzY3JpcHQg dG8gZW5zdXJlIHRoYXQgdGhlIGNvZGUgaXMgcHV0IGluIHRoZSBzYW1lIHBhZ2U/DQo+Pj4NCj4+ Pg0KPj4+IC0tDQo+Pj4gaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElD L1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQ0KPj4+IFZpZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBv cHRpb25zIGF0DQo+Pj4gaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3Bp Y2xpc3QNCj4+IC0tDQo+PiBodHRwOi8vd3d3LnBpY2xpc3QuY29tL3RlY2hyZWYvcGljbGlzdCBQ SUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlDQo+PiBWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAg b3B0aW9ucyBhdA0KPj4gaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3Bp Y2xpc3QNCj4gLS0NCj4gaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElD L1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQ0KPiBWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0 aW9ucyBhdA0KPiBodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlz dA0KDQotLQ0KaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZB USAmIGxpc3QgYXJjaGl2ZQ0KVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQN Cmh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0DQo= .