PGh0bWw+DQogIDxoZWFkPg0KICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MiI+DQogIDwvaGVhZD4NCiAgPGJvZHk+DQogICAgPHA+UHVycG9zZSBhbmQgT2JqZWN0aXZlczxhIGhyZWY9ImluZGV4Lmh0bWwiPltiYWNrIHRvIEluZGV4XTwvYT48L3A+DQogICAgPGgxPkxpYlJhdyBQcm9qZWN0IEdvYWxzIGFuZCBPYmplY3RpdmVzPC9oMT4NCiAgICA8aDI+V2hvIE1heSBCZSBJbnRlcmVzdGVkIGluIFRoaXMgUHJvamVjdDwvaDI+DQogICAgPHA+VGhlIHByb3Bvc2VkIHByb2plY3QgYW5kIHRoZSBzb2Z0d2FyZSBwcm9kdWN0cyBnZW5lcmF0ZWQgd2l0aGluIHRoaXMgcHJvamVjdCBhcmUgaW50ZW5kZWQgZm9yOjwvcD4NCiAgICA8dWw+DQogICAgICA8bGk+RGV2ZWxvcGVycyBvZiBSQVcgY29udmVydGVycywgaW5jbHVkaW5nIGN1cnJlbnQgYW5kIG5ldyBkZXZlbG9wbWVudHM8L2xpPg0KICAgICAgPGxpPkRldmVsb3BlcnMgb2YgYXBwbGljYXRpb25zIHRoYXQgbmVlZCBhY2Nlc3MgdG8gZGVjb2RlZCBSQVcgZGF0YSAoZm9yIHByZS1wcm9jZXNzaW5nLCBzdGl0Y2hpbmcsIHN0YWNraW5nLCBjb2xvciBwcm9maWxpbmcsIGV0Yy4pPC9saT4NCiAgICAgIDxsaT5UaG9zZSB3aWxsaW5nIHRvIHdyaXRlIHRoZWlyIG93biBncmFwaGljIGludGVyZmFjZSBmb3IgUkFXIGZpbGUgcHJvY2Vzc2luZzwvbGk+DQogICAgICA8bGk+RGV2ZWxvcGVycyBhbmQgZW50aHVzaWFzdHMgY3JlYXRpbmcgdGhlaXIgb3duIHByaW1hcnkgYW5kIGF1eGlsaWFyeSBkYXRhIHByb2Nlc3NpbmcgYWxnb3JpdGhtcywgaW5jbHVkaW5nDQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+SW50ZXJwb2xhdGlvbiAoZGVtb3NhaWMpLDwvbGk+DQogICAgICAgICAgPGxpPk5vaXNlIHJlZHVjdGlvbjwvbGk+DQogICAgICAgICAgPGxpPldoaXRlIGJhbGFuY2U8L2xpPg0KICAgICAgICAgIDxsaT5Db3JyZWN0aW9uIG9mIGFiZXJyYXRpb25zIGFuZCBkaXN0b3J0aW9uczwvbGk+DQogICAgICAgICAgPGxpPlJBVyBkYXRhIGFuYWx5c2lzPC9saT4NCiAgICAgICAgICA8bGk+Q29tcGFyaXNvbiBvZiBjYW1lcmFzIGFuZCBsZW5zZXM8L2xpPg0KICAgICAgICAgIDxsaT5hbmQgc28gb24uLi48L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgPC9saT4NCiAgICA8L3VsPg0KICAgIDxoMj5Tb21lIEhpc3Rvcnk8L2gyPg0KICAgIDxwPlRoZSBMaWJSYXcgcHJvamVjdCBzdGFydGVkIGluIDIwMDguIEF0IHRoYXQgdGltZSA8YSBocmVmPSJodHRwczovL3d3dy5jeWJlcmNvbS5uZXQvJTdFZGNvZmZpbi9kY3Jhdy8iPmRjcmF3PC9hPiB3YXMgdmVyeSBwb3B1bGFyIGFzIGEgbWV0aG9kIG9mIGFjY2Vzc2luZyBSQVcgZGF0YS4gSXQgd2FzIGhhcmQgdG8gZmluZCBhIG1vcmUgb3IgbGVzcyBwb3B1bGFyIGNhbWVyYSB0aGF0IHdhcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgdXRpbGl0eTsgd2hpbGUgdGhlIGltcGxlbWVudGF0aW9uIG9mIFJBVyBkYXRhIGV4dHJhY3Rpb24gaW4gPHN0cm9uZz5kY3Jhdzwvc3Ryb25nPiB3YXMgb2YgYSB2ZXJ5IGhpZ2ggcXVhbGl0eS48L3A+DQogICAgPHA+SG93ZXZlciwgZGV2ZWxvcGVycyBhbmQgZW50aHVzaWFzdHMgd2VyZSBleHBlcmllbmNpbmcgYSBudW1iZXIgb2YgZGlmZmljdWx0aWVzIHdoZW4gdXNpbmcgPHN0cm9uZz5kY3Jhdzwvc3Ryb25nPi4gRmlyc3QsIHRoZSBhdXRob3Igb2YgPHN0cm9uZz5kY3Jhdzwvc3Ryb25nPiByZWZ1c2VkIHRvIHR1cm4gaGlzIHByb2R1Y3QgaW50byBhIGhhbmR5IGxpYnJhcnkuIEJlc2lkZXMsIDxzdHJvbmc+ZGNyYXc8L3N0cm9uZz4gY29udGFpbnMgYSBudW1iZXIgb2YgcXVlc3Rpb25hYmxlIGZlYXR1cmVzIHRoYXQgbWF5IGhpbmRlciBpdHMgdXNlIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgd2VsbCBhcyBpbnN0YW5jZXMgb2YgZGlzdG9ydGlvbnMgaW4gdGhlIHBob3RvZ3JhcGhpYyBzZW5zZSBvZiBpdC4gQXMgYSByZXN1bHQsIG9uY2UgZXZlcnkgc2V2ZXJhbCBtb250aHMsIHdpdGggZWFjaCBuZXcgcmVsZWFzZSBvZiA8c3Ryb25nPmRjcmF3PC9zdHJvbmc+LCB2aXJ0dWFsbHkgYWxsIGRldmVsb3BlcnMsIHBhcnQgb2YgdGhlbSBsaXN0ZWQgb24gdGhlIDxhDQ0KICAgICAgICBocmVmPSJodHRwczovL3d3dy5jeWJlcmNvbS5uZXQvJTdFZGNvZmZpbi9kY3Jhdy8iPmRjcmF3IFdlYiBzaXRlPC9hPiwgd2VyZSB0byBjaGVjayB0aGUgZGlmZmVyZW5jZXMsIGZpZ3VyZSBvdXQgdGhlIHBhdGNoZXMsIGFuZCBhcHBseSB0aG9zZSBwYXRjaGVzIHRvIHRoZWlyIGRjcmF3LWJhc2VkIGNvZGUgYW5kIGxpYnJhcmllcy48L3A+DQogICAgPHA+QXMgZm9yIGVudGh1c2lhc3RzLCB0aGUgImVudHJ5IGNvc3QiIG9mIHZlcmlmeWluZyB0aGVpciBvd24gaWRlYXMgYW5kIGltcGxlbWVudGluZyB0aGVpciBvd24gYWxnb3JpdGhtcyBpbiBzdWNoIGFuIGVudmlyb25tZW50IGlzIG9mdGVuIHVucmVhc29uYWJseSBoaWdoOiB0aGV5IGhhdmUgdG8gZWl0aGVyIHVzZSB0aGUgZGNyYXcgY29tbWFuZCBsaW5lLCB0aHVzIGJlaW5nIGZvcmNlZCB0byB1c2UgdGhlIHVuYXZvaWRhYmxlIGVhcmx5IHByb2Nlc3Npbmcgc3RhZ2VzLCBvciB1bmRlcnN0YW5kIHRoZSBzb3VyY2UgY29kZSBhbmQgbWFpbnRhaW4gdGhlaXIgb3duIGxpYnJhcnkgYmFzZWQgb24gaXQuPC9wPg0KICAgIDxwPlRodXMsIHRoZSBpbmNvbnZlbmllbmNlcyBvZiA8c3Ryb25nPmRjcmF3PC9zdHJvbmc+IG1ha2UgdGhlIGRldmVsb3BlcnMnIGNvbW11bml0eSBxdWl0ZSBzbWFsbCBhbmQgaGFsdCBmdXJ0aGVyIGV2b2x1dGlvbiBhbmQgaW1wcm92ZW1lbnQgb2YgUkFXIGZvcm1hdCBjb252ZXJ0ZXJzLjwvcD4NCiAgICA8cD5PdXIgcHJvamVjdCBzdGFydGVkIHdpdGggdGhlIGlkZWEgdG8gPGVtPmdldCBhIGxpYnJhcnkgYmFzZWQgb24gZGNyYXcsIG9ubHkgYmV0dGVyPC9lbT4uIFRvZGF5IHdlIGFyZSB3ZWxsIHBhc3QgdGhhdCBpbml0aWFsIGdvYWwsIG5vdCBpbiB0aGUgbGVhc3QgYmVjYXVzZSA8c3Ryb25nPmRjcmF3PC9zdHJvbmc+IGlzIG5vdCBhY3RpdmVseSBzdXBwb3J0ZWQgc2luY2UgMjAxNSwgYW5kIHRoZSBsYXRlc3QgcmVsZWFzZSB3YXMgcHVibGlzaGVkIG5lYXJseSAyIHllYXJzIGFnbywgaW4gTWF5IDIwMTYuIFNpbmNlIHRoZW4gc2V2ZXJhbCBkaXN0aW5jdGx5IGRpZmZlcmVudCBSQVcgZm9ybWF0cyAoaW50cm9kdWNlZCBieSBGdWppZmlsbSwgTmlrb24sIFBlbnRheCwgU2Ftc3VuZywgU2lnbWEsIFNvbnkpIGVtZXJnZWQsIG5vbmUgb2Ygd2hpY2ggaXMgc3VwcG9ydGVkIGJ5IDxzdHJvbmc+ZGNyYXc8L3N0cm9uZz4uIEFkZGl0aW9uYWxseSwgd2Ugc2VlIGl0IG5lY2Vzc2FyeSB0byBleHRyYWN0IG1vcmUgbWV0YWRhdGEgdG8gaGVscCBiZXR0ZXIgaW50ZXJwcmV0YXRpb24gb2YgUkFXIGRhdGEgYW5kIHRvIGFkZCBmbGV4aWJpbGl0eSB0byB0aGUgUkFXIGNvbnZlcnNpb24gcHJvY2Vzcy48L3A+DQogICAgPGgyPkdvYWxzIGFuZCBPYmplY3RpdmVzPC9oMj4NCiAgICA8cD5XZSBhcmUgbWFpbnRhaW5pbmcgTGliUmF3IGFzIGEgbGlicmFyeSBwcm92aWRpbmcgYWNjZXNzIHRvIGRlY29kZWQgcmF3IGRhdGEgYW5kIG1ldGFkYXRhIHVzZWZ1bCBmb3IgY29ycmVjdCBpbnRlcnByZXRhdGlvbiBvZiB0aGUgc2FpZCBkYXRhLiBUaHVzOjwvcD4NCiAgICA8b2w+DQogICAgICA8bGk+VG8ga2VlcCBvbiBhZGRpbmcgUkFXIGRlY29kaW5nIGZvciBuZXcgYW5kIHByZXZpb3VzbHkgdW5zdXBwb3J0ZWQgY2FtZXJhczwvbGk+DQogICAgICA8bGk+VG8gY29udGludWUgdGhlIGRldmVsb3BtZW50IG9mIGEgc3RhYmxlIGFuZCBjb25zaXN0ZW50IEFQSSBzdWl0YWJsZSBmb3Igb3RoZXIgYXBwbGljYXRpb25zIChSQVcgY29udmVydGVycywgZGF0YSBhbmFseXplcnMsIHBhbm9yYW1hIHN0aXRjaGVycywgZXRjLik8L2xpPg0KICAgICAgPGxpPlRvIGhhdmUgUkFXIHByb2Nlc3NpbmcgYXMgc2VwYXJhdGUgaW5kZXBlbmRlbnQgcGFydHMgKGdyb3VwcyBvZiBBUEkgY2FsbHMpDQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+UmVhZGluZywgZGVjb2RpbmcsIGFuZCB1bnBhY2tpbmcgb2YgUkFXIGRhdGE6IDxlbT48c3Ryb25nPnRoaXMgaXMgdGhlIG1haW4gZnVuY3Rpb25hbGl0eSBvZiBMaWJSYXc8L3N0cm9uZz48L2VtPjwvbGk+DQogICAgICAgICAgPGxpPkRhdGEgY29udmVyc2lvbnM6IGludGVycG9sYXRpb24sIHdoaXRlIGJhbGFuY2UsIGV0Yy46IDxlbT48c3Ryb25nPnRoaXMgcGFydCBvZiBMaWJSYXcgaXMgZnJvemVuOiB3ZSBwb3J0ZWQgZGNyYXcgZnVuY3Rpb25hbGl0eSwgYnV0IGV4cGVjdCB0aGF0IGxpYnJhcnkgdXNlcnMgd2lsbCBjcmVhdGUgb3duIHBvc3Rwcm9jZXNzaW5nIGNvZGUuPC9zdHJvbmc+PC9lbT48L2xpPg0KICAgICAgICAgIDxsaT5GaWxlIG91dHB1dCBvZiB0aGUgcHJvY2Vzc2luZyByZXN1bHRzLiA8ZW0+PHN0cm9uZz5UaGlzIHBhcnQgaXMgdmVyeSBwcmltaXRpdmUsIG9ubHkgdGlmZiBhbmQgcHBtIG91dHB1dCBpcyBzdXBwb3J0ZWQuPC9zdHJvbmc+PC9lbT48L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgPC9saT4NCiAgICA8L29sPg0KICAgIDxwIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluOyI+VGhlIGxhdHRlciB0d28gZ3JvdXBzIG9mIGZ1bmN0aW9ucyBhcmUgbWFpbnRhaW5lZCB0byBwcm92aWRlIHNvbWUgcG9zdHByb2Nlc3Npbmcvc2F2aW5nIGFiaWxpdHkgZnJvbSBzY3JhdGNoLCB3aXRob3V0IHdyaXRpbmcgb3duIGNvZGUuIFdlIGRvIG5vdCBoYXZlIGFueSBwbGFucyB0byBleHRlbmQvaW1wcm92ZSB0aGlzIGNvZGUuPC9wPg0KICAgIDxvbD4NCiAgICAgIDxsaSB2YWx1ZT0iNCI+VG8gaW1wcm92ZSB0aGUgcHJvY2VkdXJlcyBvZiBSQVcgZGF0YSByZXRyaWV2YWwgYW5kIGRlY29kaW5nLjwvbGk+DQogICAgICA8bGk+VG8gc3VwcGx5IG90aGVyIGRldmVsb3BlcnMgd2l0aCBhICJmcmFtZXdvcmsiIChmcmVld2FyZSBhbmQgb3Blbi1zb3VyY2UpLCBlLmcuLCBmb3IgZXhwZXJpbWVudGluZyB3aXRoIHRoZWlyIG93biBtZXRob2RzIG9mIFJBVyBkYXRhIHByb2Nlc3NpbmcgKGludGVycG9sYXRpb24sIG5vaXNlIHJlZHVjdGlvbiwgd2hpdGUgYmFsYW5jZSwgZXRjLjsgc29tZSBkaXJlY3Rpb25zIG9mIHRoZSBwb3NzaWJsZSBlZmZvcnRzIGFyZSA8YT5saXN0ZWQgYWJvdmU8L2E+KSwgc28gdGhhdCB0aGV5IGNvdWxkIGNyZWF0ZSB0aGVpciBvd24gR1VJIHByb2dyYW1zIGFuZCBpbnRlcmZhY2VzIHdpdGhvdXQgZGV2ZWxvcGluZyB0aGUgZW50aXJlIFJBVyBjb252ZXJ0ZXIuPC9saT4NCiAgICA8L29sPg0KICAgIDxoMj5MaWJSYXcgUmVsZWFzZSBTY2hlZHVsZTwvaDI+DQogICAgPG9sPg0KICAgICAgPGxpPjxzdHJvbmc+UHJvZHVjdGlvbiByZWxlYXNlczwvc3Ryb25nPiB3aWxsIGJlIHB1Ymxpc2hlZCBhdCBpbnRlcnZhbHMgb2YgMS0xLjUgeWVhcnMuIFByb2R1Y3Rpb24gcmVsZWFzZXMgd2lsbCBiZSBtYWludGFpbmVkIHRocm91Z2ggYnVnZml4ZXMuIE5ldyBjYW1lcmFzIHdpbGwgbm90IGJlIGFkZGVkIHRvIHByb2R1Y3Rpb24gcmVsZWFzZXMsIGJ1dCBvbmx5IHRvIHNuYXBzaG90cyBhbmQgbm9uLXN0YWJsZS9iZXRhIHJlbGVhc2VzLjxlbT4gUGF0Y2ggPC9lbT4oYnVnZml4KSByZWxlYXNlcyBvZiBwcm9kdWN0aW9uIHJlbGVhc2VzIHNob3VsZCBwcm92aWRlIEFQSS9BQkkgY29uc2lzdGVuY3kgKHNvLCB2ZXJzaW9uIDAuMjEuNSBzaG91bGQgYmUgYmluYXJ5IGNvbXBhdGlibGUgd2l0aCAwLjIxLjApLjwvbGk+DQogICAgICA8bGk+PHN0cm9uZz5TbmFwc2hvdHM8L3N0cm9uZz4gYXJlIHBsYW5uZWQgdG8gYmUgcmVsZWFzZWQgZXZlcnkgMi0zIHF1YXJ0ZXJzLiBTbmFwc2hvdHMgd2lsbCBpbmNsdWRlIHN1cHBvcnQgZm9yIG5ldyBjYW1lcmFzLCBzdGFibGUgYW5kIHRlc3RlZCBpbiBvdXIgb3duIGFwcGxpY2F0aW9ucy4gQVBJIGNhbGxzIGFuZCBpbnRlcm5hbCByb3V0aW5lcyBtYXkgYmUgY2hhbmdlZC4gTm8gYmluYXJ5IGNvbXBhdGliaWxpdHkgbWFpbnRhaW5lZCwgdG8gdXBncmFkZSB0byBuZXdlciBzbmFwc2hvdCBvbmUgbmVlZCB0byByZWNvbXBpbGUgYXBwbGljYXRpb24gdGhhdCB1c2VzIGl0LjwvbGk+DQogICAgICA8bGk+PHN0cm9uZz5Ob24tc3RhYmxlL2JldGEgcmVsZWFzZXM8L3N0cm9uZz4gd2l0aCBuZXcgZmVhdHVyZXMsIGxpa2UgaW5pdGlhbCBzdXBwb3J0IGZvciBzb21lIG5ldyBSQVcgZm9ybWF0IHRoYXQgbmVlZHMgZXh0ZW5zaXZlIHRlc3RpbmcgYnkgdGhlIGNvbW11bml0eS4mbmJzcDsgTm8gZXhhY3Qgc2NoZWR1bGUsIHRvIGJlIHB1Ymxpc2hlZCBhcyBuZWVkZWQuPC9saT4NCiAgICA8L29sPg0KICAgIDxoMj5Ib3cgWW91IENhbiBIZWxwL1BhcnRpY2lwYXRlPC9oMj4NCiAgICA8cD48c3Ryb25nPldlIHdlbGNvbWUgYW55IGhlbHA8L3N0cm9uZz4sIGhvd2V2ZXI6PC9wPg0KICAgIDxvbD4NCiAgICAgIDxsaT5JZiB5b3UgYXJlIHN1Ym1pdHRpbmcgYW55IGNvcmUgZnVuY3Rpb25hbGl0eSBleHRlbnNpb25zL2ltcHJvdmVtZW50cywgdGhhdCBpcywgc29tZXRoaW5nIHRoYXQgaGFzIHRvIGRvIHdpdGggdGhlIGRlY29kaW5nIG9mIFJBVyBhbmQvb3IgbWV0YWRhdGEsIHRoYXQgd291bGQgYmUgaGlnaGx5IHZhbHVhYmxlIGFuZCB3ZSB3aWxsIG1haW50YWluIHlvdXIgc3VibWlzc2lvbiBvbiBvdXIgb3duLCBpZiBuZWNlc3Nhcnk7IHlvdSBkb26SdCBuZWVkIHRvIGJlIGNvbW1pdHRlZC48L2xpPg0KICAgICAgPGxpPklmIHlvdXIgY29udHJpYnV0aW9uIGFkZHMgdG8gcG9zdC1wcm9jZXNzaW5nLCBwbGVhc2UgYmUgY29tbWl0dGVkIHRvIHN1cHBvcnRpbmcgYW5kIG1haW50YWluaW5nIHN1Y2ggYSBjb250cmlidXRpb24uIE91ciBwcmV2aW91cyBleHBlcmllbmNlIHdpdGggc3VjaCBjb250cmlidXRpb25zIGhhcyBiZWVuIGxlc3MgdGhhbiBwb3NpdGl2ZSwgZXhhY3RseSBiZWNhdXNlIG9mIHRoZSBsYWNrIG9mIG1haW50ZW5hbmNlIG9uIHRoZSBwYXJ0IG9mIHRoZSBjb250cmlidXRvcnMuIFdlIGFyZSB1bmFibGUgdG8gbWFpbnRhaW4gc3VjaCBjb250cmlidXRpb25zIG9uIG91ciBvd24sIGJlY2F1c2Ugb3VyIHByaW1hcnkgZ29hbCBpcyB0byBtYWludGFpbiBSQVcgYW5kIG1ldGFkYXRhIGRlY29kaW5nLjwvbGk+DQogICAgPC9vbD4NCiAgICA8cD48YSBocmVmPSJpbmRleC5odG1sIj5bYmFjayB0byBJbmRleF08L2E+PC9wPg0KICA8L2JvZHk+DQo8L2h0bWw+DQo=