CINXE.COM

ICEC 2010 Abstracts

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title> ICEC 2010 Abstracts </title><link href="App_Themes/2024/style.css" type="text/css" rel="stylesheet" /></head> <body> <form name="form1" method="post" action="./Abstract.aspx?idEvent=%2ffMUSScdrc4%3d" id="form1"> <div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTEzMjY3MzQ0Mw9kFgICAw9kFgICAQ8PFgIeBFRleHQF1vcFPGRpdiBjbGFzcz0iY29udGVudCI+DQogICAgICAgIDxoMSBjbGFzcz0idGl0bGUiPklDRUMgMjAxMCBBYnN0cmFjdHM8L2gxPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtZW51Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhcGVyVHlwZXMiPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNBcmVhMEZ1bGxQYXBlcnMiIGNsYXNzPSJtZW51T3B0aW9uIj5GdWxsIFBhcGVyczwvYT4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSIjQXJlYTBTaG9ydFBhcGVycyIgY2xhc3M9Im1lbnVPcHRpb24iPlNob3J0IFBhcGVyczwvYT4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHNwYW4gaWQ9IkFyZWEwRnVsbFBhcGVycyIgY2xhc3M9InBhcGVyVHlwZSI+RnVsbCBQYXBlcnM8L3NwYW4+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij4xMjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+QUNPIEZPUiBPUFRJTUFMIFNFTlNPUiBMQVlPVVQ8L2gzPjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QXV0aG9yczo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGg0IGNsYXNzPSJhdXRob3JzIj5TdGVma2EgRmlkYW5vdmEsIFBlbmNobyBNYXJpbm92IGFuZCBFbnJpcXVlIEFsYmE8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPk1ldGFoZXVyaXN0aWMgbWV0aG9kcyBoYXZlIGZyZXF1ZW50bHkgYmVlbiBhcHBsaWVkIHRvIHRlbGVjb21tdW5pY2F0aW9uIHByb2JsZW1zIGluIHRoZSBsYXN0IHllYXJzLiBPbmUgb2YgdGhlc2UgcHJvYmxlbXMgaXMgV2lyZWxlc3MgU2Vuc29yIE5ldHdvcmsgKFdTTikgbGF5b3V0LCB3aGljaCBpcyBhbiBOUC1oYXJkIG9wdGltaXphdGlvbiBwcm9ibGVtLiBUaGUgc2Vuc29ycyBzZW50IHRoZWlyIHNlbnNpbmcgcmVzdWx0cyB0byBhIHNwZWNpYWwgc3RhdGlvbiBjYWxsZWQgdGhlIEhpZ2ggRW5lcmd5IENvbW11bmljYXRpb24gTm9kZSAoSEVDTikuIFRoZSBzZW5zaW5nIGFyZWEgb2YgdGhlIFdTTiBpcyB0aGUgdW5pb24gb2YgdGhlIGluZGl2aWR1YWwgc2Vuc2luZyBhcmVhcyBvZiB0aGUgbm9kZXMuIFdoZW4gZGVwbG95aW5nIGEgV1NOLCB0aGUgbWFqb3Igb2JqZWN0aXZlIGlzIHRvIGFjaGlldmUgZnVsbCBjb3ZlcmFnZSBvZiB0aGUgdGVycmFpbiAoc2Vuc29yIGZpZWxkKS4gQW5vdGhlciBvYmplY3RpdmVzIGFyZSBhbHNvIHRvIHVzZSBhIG1pbmltdW0gbnVtYmVyIG9mIHNlbnNvciBub2RlcyBhbmQgdG8ga2VlcCB0aGUgY29ubmVjdGl2aXR5IG9mIHRoZSBuZXR3b3JrLiBJbiB0aGlzIHBhcGVyIHdlIGFkZHJlc3MgYSBXU04gbGF5b3V0IHByb2JsZW0gaW4gd2hpY2ggZnVsbCBjb3ZlcmFnZSBhbmQgY29ubmVjdGl2aXR5IGFyZSB0cmVhdGVkIGFzIGNvbnN0cmFpbnRzLCB3aGlsZSBvYmplY3RpdmUgZnVuY3Rpb24gaXMgdGhlIG51bWJlciBvZiB0aGUgc2Vuc29ycy4gVG8gc29sdmUgaXQgd2UgcHJvcG9zZSBBbnQgQ29sb255IE9wdGltaXphdGlvbiAoQUNPKSBhbGdvcml0aG0uIFRoZSB0ZXJyYWluIGlzIG1vZGVsZWQgd2l0aCA1MDAmIzIxNTs1MDAgcG9pbnRzIGdyaWQgYW5kIGJvdGggc2Vuc2luZyByYWRpdXMgYW5kIGNvbW11bmljYXRpb24gcmFkaXVzIGFyZSBzZXQgdG8gMzAuIFdlIGNvbXBhcmUgb3VyIHJlc3VsdHMgd2l0aCBleGlzdGluZyBldm9sdXRpb25hcnkgYWxnb3JpdGhtcy48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDU3Ni8zMDU3Ni5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjI0PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5HUkFNTUFUSUNBTCBFVk9MVVRJT04gQU5EIFRIRSBTQU5UQSBGRSBUUkFJTCBQUk9CTEVNPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+TG91a2FzIEdlb3JnaW91IGFuZCBXaWxsaWFtIEouIFRlYWhhbjwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+SW4gdGhpcyBwYXBlciB3ZSBwcmVzZW50IHRoZSByZXN1bHRzIG9mIGEgc2VyaWVzIG9mIGV4cGVyaW1lbnRzIHdoaWNoIGV4cGxvcmUgdGhlIGVmZmVjdGl2ZW5lc3Mgb2YgR3JhbW1hdGljYWwgRXZvbHV0aW9uIGZvciB0aGUgU2FudGEgRmUgVHJhaWwgcHJvYmxlbS4gVGhlIGV4cGVyaW1lbnRzIHdoaWNoIGFyZSBwcmVzZW50ZWQgc3VwcG9ydCB0aGUgY2xhaW0gb2Ygb3RoZXIgcHVibGlzaGVkIHdvcmsgdGhhdCB0aGUgY29tcGFyaXNvbiBtZW50aW9uZWQgaW4gdGhlIEdyYW1tYXRpY2FsIEV2b2x1dGlvbiBsaXRlcmF0dXJlIGJldHdlZW4gR3JhbW1hdGljYWwgRXZvbHV0aW9uIChHRSkgYW5kIEdlbmV0aWMgUHJvZ3JhbW1pbmcgKEdQKSByZWdhcmRpbmcgdGhlIFNhbnRhIEZlIFRyYWlsIHByb2JsZW0gaXMgbm90IGEgZmFpciBvbmUuIE5hbWVseSwgR0UgbGl0ZXJhdHVyZSBjbGFpbXMgdGhhdCBHRSBvdXRwZXJmb3JtcyBHUCBpbiB0aGUgU2FudGEgRmUgVHJhaWwgcHJvYmxlbSwgYnV0IHdlIHNob3cgdGhhdCB0aGlzIGhhcHBlbnMgb25seSBiZWNhdXNlIHRoZSBHRSBleHBlcmltZW50cyBkZXNjcmliZWQgaW4gdGhlIGxpdGVyYXR1cmUgdXNlIGEgZGlmZmVyZW50IGFuZCBuYXJyb3dlciBzZWFyY2ggc3BhY2UuIEluIG9yZGVyIHRvIHBlcmZvcm0gdGhlIGV4cGVyaW1lbnRzLCBhIHNlcmllcyBvZiB0b29scyBhbmQgbW9kZWxzIGhhdmUgYmVlbiBkZXZlbG9wZWQgYW5kIGFyZSBwcmVzZW50ZWQ6IGEpIGpHRSwgYSBKYXZhIGltcGxlbWVudGF0aW9uIG9mIHRoZSBHcmFtbWF0aWNhbCBFdm9sdXRpb24gc3lzdGVtOyBiKSBqR0UgTmV0TG9nbywgYW4gZXh0ZW5zaW9uIG9mIGpHRSBmb3IgdGhlIE5ldExvZ28gbW9kZWxsaW5nIGVudmlyb25tZW50OyBjKSB0aGUgU2FudGEgRmUgVHJhaWwgbW9kZWwsIGEgc2ltdWxhdGlvbiBvZiB0aGUgcHJvYmxlbSBpbiBOZXRMb2dvOyBhbmQgZCkgYSBOZXRMb2dvIG1vZGVsIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBleHBlcmltZW50cy4gRmluYWxseSwgd2Ugc2hvdyB0aGF0IEdyYW1tYXRpY2FsIEV2b2x1dGlvbiBpcyBjYXBhYmxlIG9mIGZpbmRpbmcgc29sdXRpb25zIGluIHRoZSBTYW50YSBGZSBUcmFpbCBwcm9ibGVtIHRoYXQgcmVxdWlyZSBmZXdlciBzdGVwcyB0aGFuIHRoZSBzb2x1dGlvbnMgbWVudGlvbmVkIGluIHRoZSBHUCBhbmQgR0UgbGl0ZXJhdHVyZS48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjI3PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5BTEdPUklUSE1TIEZPUiBFVk9MVklORyBOTy1MSU1JVCBURVhBUyBIT0xEJiMzOTtFTSBQT0tFUiBQTEFZSU5HIEFHRU5UUzwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkdhcnJldHQgTmljb2xhaSBhbmQgUm9iZXJ0IEhpbGRlcm1hbjwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+Q29tcHV0ZXJzIGhhdmUgZGlmZmljdWx0eSBsZWFybmluZyBob3cgdG8gcGxheSBUZXhhcyBIb2xkJiMzOTtlbSBQb2tlci4gVGhlIGdhbWUgY29udGFpbnMgYSBoaWdoIGRlZ3JlZSBvZiBzdG9jaGFzdGljaXR5LCBoaWRkZW4gaW5mb3JtYXRpb24sIGFuZCBvcHBvbmVudHMgdGhhdCBhcmUgZGVsaWJlcmF0ZWx5IHRyeWluZyB0byBtaXMtcmVwcmVzZW50IHRoZWlyIGN1cnJlbnQgc3RhdGUuIFBva2VyIGhhcyBhIG11Y2ggbGFyZ2VyIGdhbWUgc3BhY2UgdGhhbiBjbGFzc2ljIHBhcmxvdXIgZ2FtZXMgc3VjaCBhcyBDaGVzcyBhbmQgQmFja2dhbW1vbi4gRXZvbHV0aW9uYXJ5IG1ldGhvZHMgaGF2ZSBiZWVuIHNob3duIHRvIGZpbmQgcmVsYXRpdmVseSBnb29kIHJlc3VsdHMgaW4gbGFyZ2Ugc3RhdGUgc3BhY2VzLCBhbmQgbmV1cmFsIG5ldHdvcmtzIGhhdmUgYmVlbiBzaG93biB0byBiZSBhYmxlIHRvIGZpbmQgc29sdXRpb25zIHRvIG5vbi1saW5lYXIgc2VhcmNoIHByb2JsZW1zLiBJbiB0aGlzIHBhcGVyLCB3ZSBwcmVzZW50IHNldmVyYWwgYWxnb3JpdGhtcyBmb3IgdGVhY2hpbmcgYWdlbnRzIGhvdyB0byBwbGF5IE5vLUxpbWl0IFRleGFzIEhvbGQmIzM5O2VtIFBva2VyIHVzaW5nIGEgaHlicmlkIG1ldGhvZCBrbm93biBhcyBldm9sdmluZyBuZXVyYWwgbmV0d29ya3MuIEZ1cnRoZXJtb3JlLCB3ZSBhZGFwdCBoZXVyaXN0aWNzIHN1Y2ggYXMgaGFsbHMgb2YgZmFtZSBhbmQgY28tZXZvbHV0aW9uIHRvIGJlIGFibGUgdG8gaGFuZGxlIHBvcHVsYXRpb25zIG9mIFBva2VyIGFnZW50cywgd2hpY2ggY2FuIHNvbWV0aW1lcyBjb250YWluIHNldmVyYWwgaHVuZHJlZCBvcHBvbmVudHMsIGluc3RlYWQgb2YgYSBzaW5nbGUgb3Bwb25lbnQuIE91ciBhZ2VudHMgd2VyZSBldmFsdWF0ZWQgYWdhaW5zdCBzZXZlcmFsIGJlbmNobWFyayBhZ2VudHMuIEV4cGVyaW1lbnRhbCByZXN1bHRzIHNob3cgdGhlIG92ZXJhbGwgYmVzdCBwZXJmb3JtYW5jZSB3YXMgb2J0YWluZWQgYnkgYW4gYWdlbnQgZXZvbHZlZCBmcm9tIGEgc2luZ2xlIHBvcHVsYXRpb24gKGkuZS4sIHdpdGggbm8gY28tZXZvbHV0aW9uKSB1c2luZyBhIGxhcmdlIGhhbGwgb2YgZmFtZS4gVGhlc2UgcmVzdWx0cyBkZW1vbnN0cmF0ZSB0aGUgZWZmZWN0aXZlbmVzcyBvZiBvdXIgYWxnb3JpdGhtcyBpbiBjcmVhdGluZyBjb21wZXRpdGl2ZSBOby1MaW1pdCBUZXhhcyBIb2xkJiMzOTtlbSBQb2tlciBhZ2VudHMuPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA2MzAvMzA2MzAucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij4yOTwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+UkVBTElaSU5HIEFTU09DSUFURUQgRVZPTFVUSU9OIENPVVJTRVMgLSBUaGUgQ28tZXZvbHV0aW9uIGluIHRoZSBBcnRpZmljaWFsIFdvcmxkIG9mIE1hbnVmYWN0dXJpbmc8L2gzPjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QXV0aG9yczo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGg0IGNsYXNzPSJhdXRob3JzIj5UYXJlayBBbEdlZGRhd3kgYW5kIEhvZGEgRWxNYXJhZ2h5PC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5UaGUgYXJ0aWZpY2lhbCB3b3JsZCBvZiBwcm9kdWN0cyBkZXNpZ24gYW5kIG1hbnVmYWN0dXJpbmcgdGVjaG5vbG9neSBleHBlcmllbmNlcyBjaGFuZ2VzIHRoYXQgcmVzdWx0IGluIHRoZSBldm9sdXRpb24gb2YgdGhlc2UgZW50aXRpZXMuIFRoZXNlIGNoYW5nZXMgYXJlIHNpbWlsYXIgdG8gdGhlIGJpb2xvZ2ljYWwgZXZvbHV0aW9uIHByb2Nlc3MgaW4gdGhlIG5hdHVyYWwgd29ybGQgYW5kIGNhbiBiZSB0cmFja2VkIHNpbWlsYXJseS4gVGhlIGNvLWRldmVsb3BtZW50IGJlaGF2aW91ciBpbiB0aGUgYXJ0aWZpY2lhbCB3b3JsZCBpcyBhbHNvIG5vdGljZWFibGUsIHdoaWNoIHN1Z2dlc3RzIHRoYXQgZGVzaWduIGFuZCB0ZWNobm9sb2d5IGNvLWV2b2x2ZSBpbiBhIG1hbm5lciBha2luIHRvIHRoZSBjby1ldm9sdXRpb24gb2Ygc3BlY2llcyBpbiBuYXR1cmUuIEEgY28tZXZvbHV0aW9uIG1vZGVsIGFuZCBhbGdvcml0aG1zIGFyZSBwcm9wb3NlZCBiYXNlZCBvbiBDbGFkaXN0aWNzIOKAkyBhIGJpb2xvZ2ljYWwgY2xhc3NpZmljYXRpb24gdG9vbC4gTWFjaGluZS10b29scyBkZXZlbG9wbWVudCBjYXNlIHN0dWR5IGlzIHByZXNlbnRlZCB0byBkZW1vbnN0cmF0ZSB0aGUgbW9kZWwuIFJlc3VsdHMgcHJvdmUgdGhlIG1vZGVsIHByb3Bvc2l0aW9ucyBhbmQgaWxsdXN0cmF0ZSB0aGUgZGlyZWN0IGNvLWRldmVsb3BtZW50IG9mIGRlc2lnbiBhbmQgdGVjaG5vbG9neS48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjM3PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5DT0VWT0xVVElPTkFSWSBBUkNISVRFQ1RVUkVTIFdJVEggU1RSQUlHSFQgTElORSBQUk9HUkFNUyBGT1IgU09MVklORyBUSEUgU1lNQk9MSUMgUkVHUkVTU0lPTiBQUk9CTEVNPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+Q3J1eiBFbnJpcXVlIEJvcmdlcywgQyYjMjMzO3NhciBMLiBBbG9uc28sIEpvcyYjMjMzOyBMdWlzIE1vbnRhJiMyNDE7YSwgTWFyaW5hIGRlIGxhIENydXogRWNoZWFuZGlhIGFuZCBBbGZvbnNvIE9ydGVnYSBkZSBsYSBQdWVudGU8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPlRvIHN1Y2Nlc3NmdWxseSBhcHBseSBldm9sdXRpb25hcnkgYWxnb3JpdGhtcyB0byB0aGUgc29sdXRpb24gb2YgaW5jcmVhc2luZ2x5IGNvbXBsZXggcHJvYmxlbXMgd2UgbXVzdCBkZXZlbG9wIGVmZmVjdGl2ZSB0ZWNobmlxdWVzIGZvciBldm9sdmluZyBzb2x1dGlvbnMgaW4gdGhlIGZvcm0gb2YgaW50ZXJhY3RpbmcgY29hZGFwdGVkIHN1YmNvbXBvbmVudHMuIEluIHRoaXMgcGFwZXIgd2UgcHJlc2VudCBhbiBhcmNoaXRlY3R1cmUgd2hpY2ggaW52b2x2ZXMgY29vcGVyYXRpdmUgY29ldm9sdXRpb24gb2YgdHdvIHN1YmNvbXBvbmVudHM6IGEgZ2VuZXRpYyBwcm9ncmFtIGFuZCBhbiBldm9sdXRpb24gc3RyYXRlZ3kuIEFzIG1haW4gZGlmZmVyZW5jZSB3aXRoIHdvcmsgcHJldmlvdXNseSBkb25lLCBvdXIgZ2VuZXRpYyBwcm9ncmFtIGV2b2x2ZXMgc3RyYWlnaHQgbGluZSBwcm9ncmFtcyByZXByZXNlbnRpbmcgZnVuY3Rpb25hbCBleHByZXNzaW9ucywgaW5zdGVhZCBvZiB0cmVlIHN0cnVjdHVyZXMuIFRoZSBldm9sdXRpb24gc3RyYXRlZ3kgc2VhcmNoZXMgZm9yIGdvb2QgdmFsdWVzIGZvciB0aGUgbnVtZXJpY2FsIHRlcm1pbmFsIHN5bWJvbHMgdXNlZCBieSB0aG9zZSBleHByZXNzaW9ucy4gRXhwZXJpbWVudGF0aW9uIGhhcyBiZWVuIHBlcmZvcm1lZCBvdmVyIHN5bWJvbGljIHJlZ3Jlc3Npb24gcHJvYmxlbSBpbnN0YW5jZXMgYW5kIHRoZSBvYnRhaW5lZCByZXN1bHRzIGhhdmUgYmVlbiBjb21wYXJlZCB3aXRoIHRob3NlIG9idGFpbmVkIGJ5IG1lYW5zIG9mIEdlbmV0aWMgUHJvZ3JhbW1pbmcgc3RyYXRlZ2llcyB3aXRob3V0IGNvZXZvbHV0aW9uLiBUaGUgcmVzdWx0cyBzaG93IHRoYXQgb3VyIGNvZXZvbHV0aW9uYXJ5IGFyY2hpdGVjdHVyZSB3aXRoIHN0cmFpZ2h0IGxpbmUgcHJvZ3JhbXMgaXMgY2FwYWJsZSB0byBvYnRhaW4gYmV0dGVyIHF1YWxpdHkgaW5kaXZpZHVhbHMgdGhhbiB0cmFkaXRpb25hbCBnZW5ldGljIHByb2dyYW1taW5nIHVzaW5nIHRoZSBzYW1lIGFtb3VudCBvZiBjb21wdXRhdGlvbmFsIGVmZm9ydC48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDc1MS8zMDc1MS5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjM5PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5DT0xMRUNUSVZFIFBFUkNFUFRJT04gSU4gQSBTV0FSTSBPRiBBVVRPTk9NT1VTIFJPQk9UUzwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkdpdXNlcHBlIE1vcmxpbm8sIFZpdG8gVHJpYW5uaSBhbmQgRWxpbyBUdWNpPC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5XZSBwcmVzZW50IGEgc3R1ZHkgdGhhdCBhaW1zIGF0IHVuZGVyc3RhbmRpbmcgaG93IHBlcmNlcHRpb24gY2FuIGJlIHRoZSByZXN1bHQgb2YgYSBjb2xsZWN0aXZlLCBzZWxmLW9yZ2FuaXNpbmcgcHJvY2Vzcy4gQSBncm91cCBvZiByb2JvdHMgaXMgcGxhY2VkIGluIGFuIGVudmlyb25tZW50IGNoYXJhY3Rlcml6ZWQgYnkgYmxhY2sgc3BvdHMgcGFpbnRlZCBvbiB0aGUgZ3JvdW5kLiBUaGUgZGVuc2l0eSBvZiB0aGUgc3BvdHMgY2FuIHZhcnkgZnJvbSB0cmlhbCB0byB0cmlhbCwgYW5kIHJvYm90cyBoYXZlIHRvIGNvbGxlY3RpdmVseSBlbmNvZGUgc3VjaCBkZW5zaXR5IGludG8gYSBjb2hlcmVudCBmbGFzaGluZyBhY3Rpdml0eS4gT3ZlcmFsbCwgcm9ib3RzIHNob3VsZCBwcm92ZSBjYXBhYmxlIG9mIHBlcmNlaXZpbmcgdGhlIGdsb2JhbCBkZW5zaXR5IGJ5IGV4cGxvaXRpbmcgb25seSBsb2NhbCBpbmZvcm1hdGlvbiBhbmQgcm9ib3Qtcm9ib3QgaW50ZXJhY3Rpb25zLiBXZSBzaG93IGhvdyB3ZSBjYW4gc3ludGhlc2l6ZSBpbmRpdmlkdWFsIGNvbnRyb2xsZXJzIHRoYXQgYWxsb3cgY29sbGVjdGl2ZSBwZXJjZXB0aW9uIGJ5IGV4cGxvaXRpbmcgZXZvbHV0aW9uYXJ5IHJvYm90aWNzIHRlY2huaXF1ZXMuIFRoaXMgd29yayBpcyBhIGZpcnN0IGF0dGVtcHQgdG8Kc3R1ZHkgY29nbml0aXZlIGFiaWxpdGllcyBzdWNoIGFzIHBlcmNlcHRpb24sIGRlY2lzaW9uLW1ha2luZywgb3IgYXR0ZW50aW9uIGluIGEgc3ludGhldGljIHNldHVwIGFzIHJlc3VsdCBvZiBhIGNvbGxlY3RpdmUsIHNlbGYtb3JnYW5pc2luZyBwcm9jZXNzLjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwNzU0LzMwNzU0LnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+NDA8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPlNPTFZJTkcgVEhFIFJJTkcgQVJDLUxPQURJTkcgUFJPQkxFTSBVU0lORyBBIEhZQlJJRCBTQ0FUVEVSIFNFQVJDSCBBTEdPUklUSE08L2gzPjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QXV0aG9yczo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGg0IGNsYXNzPSJhdXRob3JzIj5BbmFiZWxhIE1vcmVpcmEgQmVybmFyZGlubywgRXVnJiMyMzM7bmlhIE1vcmVpcmEgQmVybmFyZGlubywgSnVhbiBNYW51ZWwgUyYjMjI1O25jaGV6LVAmIzIzMztyZXosIEp1YW4gQW50b25pbyBHJiMyNDM7bWV6LVB1bGlkbyBhbmQgTWlndWVsIEFuZ2VsIFZlZ2EtUm9kciYjMjM3O2d1ZXo8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPlJlc2lsaWVudCBQYWNrZXQgUmluZyAoUlBSKSBpcyBhIHN0YW5kYXJkIHRoYXQgdXNlcyBFdGhlcm5ldCBzd2l0Y2hpbmcgYW5kIGEgZHVhbCBjb3VudGVyLXJvdGF0aW5nIHJpbmcgdG9wb2xvZ3kgdG8gcHJvdmlkZSBTT05FVC1saWtlIG5ldHdvcmsgcmVzaWxpZW5jeSBhbmQgb3B0aW1pc2VkIGJhbmR3aWR0aCB1c2FnZSwgd2hpbGUgaXQgZGVsaXZlcnMgbXVsdGlwb2ludCBFdGhlcm5ldC9JUCBzZXJ2aWNlcy4gQW4gaW1wb3J0YW50IG9wdGltaXNhdGlvbiBwcm9ibGVtIGFyaXNpbmcgaW4gdGhpcyBjb250ZXh0IGlzIHRoZSBXZWlnaHRlZCBSaW5nIEFyYyBMb2FkaW5nIFByb2JsZW0gKFdSQUxQKS4gVGhhdCBpcyB0aGUgZGVzaWduIG9mIGEgZGlyZWN0IHBhdGggZm9yIGVhY2ggcmVxdWVzdCBpbiBhIGNvbW11bmljYXRpb24gbmV0d29yaywgaW4gc3VjaCBhIHdheSB0aGF0IGhpZ2ggbG9hZCBvbiB0aGUgYXJjcyB3aWxsIGJlIGF2b2lkZWQsIHdoZXJlIGFuIGFyYyBpcyBhbiBlZGdlIGVuZG93ZWQgd2l0aCBhIGRpcmVjdGlvbi4gVGhlIGxvYWQgb2YgYW4gYXJjIGlzIGRlZmluZWQgYXMgdGhlIHRvdGFsIHdlaWdodCBvZiB0aG9zZSByZXF1ZXN0cyByb3V0ZWQgdGhyb3VnaCB0aGUgYXJjIGluIGl0cyBkaXJlY3Rpb24uIFdSQUxQIGFzayBmb3IgYSByb3V0aW5nIHNjaGVtZSBzdWNoIHRoYXQgdGhlIG1heGltdW0gbG9hZCBvbiB0aGUgYXJjcyB3aWxsIGJlIG1pbmltdW0uIEluIHRoaXMgcGFwZXIgd2Ugc3R1ZHkgdGhlIGxvYWRpbmcgcHJvYmxlbSB3aXRob3V0IGRlbWFuZCBzcGxpdHRpbmcgYW5kIGZvciBzb2x2aW5nIGl0IHdlIHByb3Bvc2UgYSBIeWJyaWQgU2NhdHRlciBTZWFyY2ggKEhTUykgYWxnb3JpdGhtLiBDb3VwbGVkIHdpdGggdGhlIFNjYXR0ZXIgU2VhcmNoIGFsZ29yaXRobSB3ZSB1c2UgYSBUYWJ1IFNlYXJjaCBhbGdvcml0aG0gdG8gbG9jYXRlIHRoZSBnbG9iYWwgbWluaW11bS4gV2Ugc2hvdyB0aGF0IEhTUyBpcyBhYmxlIHRvIGFjaGlldmUgZmVhc2libGUgc29sdXRpb25zIHRvIFdSQUxQIGluc3RhbmNlcywgaW1wcm92aW5nIHRoZSByZXN1bHRzIG9idGFpbmVkIGJ5IHByZXZpb3VzIGFwcHJvYWNoZXMuPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA3NjIvMzA3NjIucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij41NjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+QSBHRU5FUkFMSVpFRCBFWFRSRU1BTCBPUFRJTUlaQVRJT04tSU5TUElSRUQgQUxHT1JJVEhNIEZPUiBQUkVESUNUSVZFIE1BSU5URU5BTkNFIFNDSEVEVUxJTkcgUFJPQkxFTVM8L2gzPjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QXV0aG9yczo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGg0IGNsYXNzPSJhdXRob3JzIj5QYXNxdWFsZSBBcnBhaWEsIERvbWVuaWNvIE1haXN0byBhbmQgQ2FybG8gTWFubmE8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPkEgYml0LWVuY29kZWQgaGV1cmlzdGljIGV2b2x1dGlvbmFyeSBvcHRpbWl6YXRpb24gYWxnb3JpdGhtIGluc3BpcmVkIGJ5IHRoZSBHZW5lcmFsaXplZCBFeHRyZW1hbCBPcHRpbWl6YXRpb24gbWV0aG9kIGlzIHByZXNlbnRlZC4gVGhlIHByb3Bvc2VkIGV2b2x1dGlvbmFyeSBhcHByb2FjaCBhaW1zIGF0IG9wdGltaXppbmcgYSBwcmVkaWN0aXZlIG1haW50ZW5hbmNlIHNjaGVkdWxpbmcgcHJvYmxlbSBjaGFyYWN0ZXJpemVkIGJ5IGFuIGFuYWx5dGljYWxseSBpbnRyYWN0YWJsZSBvYmplY3RpdmUgZnVuY3Rpb24uIEEgcHJlbGltaW5hcnkgY29tcGFyaXNvbiB3aXRoIGEgc3RhbmRhcmQgZ2VuZXRpYyBhbGdvcml0aG0gb24gYSBzZXQgb2YgaGlnaC1kaW1lbnNpb24gY2FzZXMgb2YgdGhlIGNvbnNpZGVyZWQgbWFpbnRlbmFuY2UgcHJvYmxlbSBzaG93cyBiZXR0ZXIgcGVyZm9ybWFuY2UgZm9yIHRoZSBwcm9wb3NlZCBhcHByb2FjaC48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDgwMi8zMDgwMi5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjYwPC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5TVUJHUkFQSCBFWFRSQUNUSU9OIEFORCBNRU1FVElDIEFMR09SSVRITSBGT1IgVEhFIE1BWElNVU0gQ0xJUVVFIFBST0JMRU08L2gzPjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QXV0aG9yczo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGg0IGNsYXNzPSJhdXRob3JzIj5EdWMtQ3VvbmcgRGFuZyBhbmQgQXppeiBNb3VrcmltPC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5UaGUgbWF4aW11bSBjbGlxdWUgcHJvYmxlbSBpbnZvbHZlcyBmaW5kaW5nIHRoZSBsYXJnZXN0IHNldCBvZiBwYWlyd2lzZSBhZGphY2VudCB2ZXJ0aWNlcyBpbiBhIGdyYXBoLiBUaGUgcHJvYmxlbSBpcyBjbGFzc2ljIGJ1dCBzdGlsbCBhdHRyYWN0cyBtdWNoIGF0dGVudGlvbiBiZWNhdXNlIG9mIGl0cyBoYXJkbmVzcyBhbmQgaXRzIHByb21pbmVudCBhcHBsaWNhdGlvbnMuIE91ciB3b3JrIGlzIGJhc2VkIG9uIHRoZSBleGlzdGVuY2Ugb2YgYW4gb3JkZXIgb24gYWxsIHRoZSB2ZXJ0aWNlcyB3aGVyZWJ5IHRob3NlIGJlbG9uZ2luZyB0byBhIG1heGltdW0gY2xpcXVlIHN0YXkgY2xvc2UgZW5vdWdoIHRvIGVhY2ggb3RoZXIuIFN1Y2ggYW4gb3JkZXIgY2FuIGJlIGlkZW50aWZpZWQgdmlhIHRoZSBleHRyYWN0aW9uIG9mIGEgcGFydGljdWxhciBzdWJncmFwaCBmcm9tIHRoZSBvcmlnaW5hbCBncmFwaC4gVGhlIHByb2JsZW0gY2FuIGNvbnNlcXVlbnRseSBiZSBzZWVuIGFzIGEgcGVybXV0YXRpb24gcHJvYmxlbSB0aGF0IGNhbiBiZSBhZGRyZXNzZWQgZWZmaWNpZW50bHkgd2l0aCBhbiBldm9sdXRpb25hcnktbGlrZSBhbGdvcml0aG0sIGhlcmUgd2UgdXNlIGEgbWVtZXRpYyBhbGdvcml0aG0gKE1BKS4gQ29tcHV0YXRpb25hbCBleHBlcmltZW50cyBjb25kdWN0ZWQgb24gRElNQUNTIGJlbmNobWFyayBpbnN0YW5jZXMgY2xlYXJseSBzaG93IG91ciBNQSB3aGljaCBub3Qgb25seSBvdXRwZXJmb3JtcyBleGlzdGluZyBnZW5ldGljIGFwcHJvYWNoZXMsIGJ1dCBhbHNvIGNvbXBhcmVzIHZlcnkgd2VsbCB0byBzdGF0ZS1vZi10aGUtYXJ0IGFsZ29yaXRobXMuCgo8L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDgxMC8zMDgxMC5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjgwPC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5FWFBMT1JJTkcgVEhFIENPTVBMRVhJVFkgT0YgQSBQUk9QT1NFRCBSRUNVUlNJVkUgTUVBU1VSRSBPRiBSRUNPTUJJTkFUSU9OQUwgRElTVEFOQ0U8L2gzPjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QXV0aG9yczo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGg0IGNsYXNzPSJhdXRob3JzIj5Sb2JlcnQgQ29sbGllciBhbmQgTWFyayBXaW5lYmVyZzwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+V2hlbiBzdHVkeWluZyBldm9sdXRpb25hcnkgc3lzdGVtcywgZWl0aGVyIGZyb20gdGhlIG5hdHVyYWwgd29ybGQgb3IgYXJ0aWZpY2lhbGx5IGNvbnN0cnVjdGVkIHVzaW5nIHNpbXVsYXRlZCBwb3B1bGF0aW9ucywgcmVzZWFyY2hlcnMgbXVzdCBiZSBhYmxlIHRvIHF1YW50aWZ5IHRoZSBnZW5vdHlwaWMgZGlmZmVyZW5jZXMgdGhhdCBhcmUgb2JzZXJ2ZWQuIFdpdGggdGhlIHNpbXBsZSBnZW5ldGljIGFsZ29yaXRobSBlbXBsb3lpbmcgYm90aCBhIHVuYXJ5IG11dGF0aW9uIG9wZXJhdG9yIGFuZCBhIGJpbmFyeSByZWNvbWJpbmF0aW9uIG9wZXJhdG9yIHRvIG1haW50YWluIHZhcmlhdGlvbiBpbiB0aGUgcG9wdWxhdGlvbiwgaXQgaXMgZXhjZWVkaW5nbHkgZGlmZmljdWx0IHRvIHF1YW50aWZ5IHRoZSBkaXN0YW5jZSBiZXR3ZWVuIGVsZW1lbnRzIG9mIHRoZSBjaHJvbW9zb21lIHNwYWNlIHdpdGggYW4gYXBwcm9hY2ggdGhhdCBpcyB0cnVseSByZXByZXNlbnRhdGl2ZSBvZiB0aGUgZGlzdGFuY2UgdGhhdCB3b3VsZCBuZWVkIHRvIGJlIHRyYXZlcnNlZCBieSB0aGUgZXZvbHV0aW9uYXJ5IG1lY2hhbmlzbS4gQWx0aG91Z2ggZXZhbHVhdGlvbiBmdW5jdGlvbiBkZXBlbmRlbmNlIGFuZCB0aGUgYmluYXJ5IGFyaXR5IG9mIHRoZSByZWNvbWJpbmF0aW9uIG9wZXJhdG9yIGJvdGggY29udHJpYnV0ZSB0byB0aGlzIGRpZmZpY3VsdHksIGl0IGlzIHBvc3NpYmxlIHRvIHJlZGVmaW5lIHRoZSBmdW5jdGlvbiBvZiByZWNvbWJpbmF0aW9uIGluIHN1Y2ggYSB3YXkgYXMgdG8gZmFjaWxpdGF0ZSB0aGUgY29tcHV0YXRpb24gb2YgYSBtb3JlIHJlcHJlc2VudGF0aXZlIG1lYXN1cmVtZW50IG9mIHRoZSBkaXN0YW5jZSB0aGUgZ2VuZXRpYyBhbGdvcml0aG0gd291bGQgbmVlZCB0byB0cmF2ZXJzZSB0byBjcmVhdGUgYSBzcGVjaWZpYyBjaHJvbW9zb21lIGZyb20gYSBnaXZlbiBwb3B1bGF0aW9uLiBUaGUgcmVjdXJzaXZlIGFwcHJvYWNoIHByZXNlbnRlZCBoZXJlIGVudGFpbHMgdGhlIGRlZmluaXRpb24gb2YgdW5hcnkgcmVjb21iaW5hdGlvbiBvcGVyYXRvcnMgYW5kIHVsdGltYXRlbHkgcmVzdWx0cyBpbiBhIHRlY2huaXF1ZSBmb3IgY2FsY3VsYXRpbmcgdGhlIHJlY29tYmluYXRpb25hbCBkaXN0YW5jZSBiZXR3ZWVuIGNocm9tb3NvbWVzIHdpdGggYSB0aW1lIGNvbXBsZXhpdHkgdGhhdCBpcyBpbXByb3ZlZCBsb2dhcml0aG1pY2FsbHkgb3ZlciBhIHNpbXBsaXN0aWMgYXBwcm9hY2guPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA4NTgvMzA4NTgucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij44NDwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+SU1QUk9WRUQgQ09NUFJFU1NFRCBPQkpFQ1RJVkUgR0VORVRJQyBBTEdPUklUSE06IENPR0EtSUk8L2gzPjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QXV0aG9yczo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGg0IGNsYXNzPSJhdXRob3JzIj5LaXR0aXBvbmcgQm9vbmxvbmcsIE5hY2hvbCBDaGFpeWFyYXRhbmEgYW5kIEt1bnRpbmVlIE1hbmVlcmF0YW5hPC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5UaGlzIHBhcGVyIHByZXNlbnRzIGFuIGltcHJvdmVkIHZlcnNpb24gb2YgY29tcHJlc3NlZCBvYmplY3RpdmUgZ2VuZXRpYyBhbGdvcml0aG0gdG8gc29sdmUgcHJvYmxlbXMgd2l0aCBhIGxhcmdlIG51bWJlciBvZiBvYmplY3RpdmVzLiBUaGUgaW1wcm92ZWQgY29tcHJlc3NlZCBvYmplY3RpdmUgZ2VuZXRpYyBhbGdvcml0aG0gKENPR0EtSUkpIGVtcGxveXMgYSByYW5rIGFzc2lnbm1lbnQgZm9yIHRoZSBzY3JlZW5pbmcgb2Ygbm9uLWRvbWluYXRlZCBzb2x1dGlvbnMgdGhhdCBiZXN0IGFwcHJveGltYXRlIHRoZSBQYXJldG8gZnJvbnQgZnJvbSB2YXN0IG51bWJlcnMgb2YgYXZhaWxhYmxlIG5vbi1kb21pbmF0ZWQgc29sdXRpb25zLiBTaW5jZSB0aGUgd2lubmluZyBub24tZG9taW5hdGVkIHNvbHV0aW9ucyBhcmUgaGV1cmlzdGljYWxseSBkZXRlcm1pbmVkIGZyb20gdGhlIHN1cnZpdmFsIGNvbXBldGl0aW9uLCB0aGUgcHJvY2VkdXJlIGlzIHJlZmVycmVkIHRvIGFzIGEgd2lubmluZy1zY29yZSBiYXNlZCByYW5raW5nIG1lY2hhbmlzbS4gSW4gQ09HQS1JSSwgYW4gbS1vYmplY3RpdmUgdmVjdG9yIGlzIHRyYW5zZm9ybWVkIHRvIG9ubHkgb25lIGNyaXRlcmlvbiwgdGhlIHdpbm5pbmcgc2NvcmUgb2Ygd2hpY2ggYXNzaWdubWVudCBpcyBpbXByb3ZlZCBmcm9tIHRoYXQgb2YgdGhlIHByZXZpb3VzIHZlcnNpb24sIENPR0EuIENPR0EtSUkgaXMgc3Vic2VxdWVudGx5IGJlbmNobWFya2VkIGFnYWluc3QgYSBub24tZG9taW5hdGVkIHNvcnRpbmcgZ2VuZXRpYyBhbGdvcml0aG0gSUkgKE5TR0EtSUkpIGFuZCBhbiBpbXByb3ZlZCBzdHJlbmd0aCBQYXJldG8gZ2VuZXRpYyBhbGdvcml0aG0gKFNQRUEtSUkpLCBpbiBzZXZlbiBzY2FsYWJsZSBEVExaIGJlbmNobWFyayBwcm9ibGVtcy4gVGhlIHJlc3VsdHMgcmV2ZWFsIHRoYXQgZm9yIHRoZSBjbG9zZW5lc3MgdG8gdGhlIHRydWUgUGFyZXRvIGZyb250IENPR0EtSUkgaXMgbXVjaCBiZXR0ZXIgdGhhbiBOU0dBLUlJLCBhbmQgU1BFQS1JSS4gRm9yIGRpdmVyc2l0eSBvZiBzb2x1dGlvbnMsIHRoZSBkaXZlcnNpdHkgb2YgdGhlIHNvbHV0aW9ucyBieSBDT0dBLUlJIGlzIGNvbXBhcmFibGUgdG8gdGhhdCBvZiBTUEVBLUlJLCB3aGlsZSBOU0dBLUlJIGhhcyBwb29yIGRpdmVyc2l0eS4gQ09HQS1JSSBjYW4gYWxzbyBwcmV2ZW50IHNvbHV0aW9ucyBkaXZlcmdpbmcgZnJvbSB0cnVlIFBhcmV0byBzb2x1dGlvbnMgdGhhdCBvY2N1ciBvbiBOU0dBLUlJIGFuZCBTUEVBLUlJIGZvciBwcm9ibGVtcyB3aXRoIG1vcmUgdGhhbiA0IG9iamVjdGl2ZXMuIFRodXMsIGl0IGNhbiBiZSBjb25jbHVkZWQgdGhhdCBDT0dBLUlJIGlzIHN1aXRhYmxlIGZvciBzb2x2aW5nIGFuIG9wdGltaXphdGlvbiBwcm9ibGVtIHdpdGggYSBsYXJnZSBudW1iZXIgb2Ygb2JqZWN0aXZlcy48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDg2Ny8zMDg2Ny5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjg1PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5JTlZFU1RJR0FUSU5HIFJFUExBQ0VNRU5UIFNUUkFURUdJRVMgRk9SIFRIRSBBREFQVElWRSBESVNTT1JUQVRJVkUgTUFUSU5HIEdFTkVUSUMgQUxHT1JJVEhNPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+Q2FybG9zIE0uIEZlcm5hbmRlcywgSnVhbiBKdWwmIzIyNTtuIE1lcmVsbyBhbmQgQWdvc3RpbmhvIEMuIFJvc2E8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPlRoaXMgcGFwZXIgaW52ZXN0aWdhdGVzIHRoZSBlZmZlY3RzIG9mIG1vZGlmeWluZyB0aGUgQWRhcHRpdmUgRGlzc29ydGF0aXZlIE1hdGluZyBHZW5ldGljIEFsZ29yaXRobSAoQURNR0EpIHJlcGxhY2VtZW50IHN0cmF0ZWd5IG9uIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgYWxnb3JpdGhtIGluIGR5bmFtaWMgcHJvYmxlbXMuIEFETUdBIGlzIGEgdmFyaWF0aW9uIG9mIHRoZSBzdGFuZGFyZCBHQSB3aXRoIGEgbWF0aW5nIHJlc3RyaWN0aW9uIGJhc2VkIG9uIHRoZSBnZW5vdHlwaWMgc2ltaWxhcml0eSBvZiB0aGUgaW5kaXZpZHVhbHMuIERpc3NpbWlsYXIgaW5kaXZpZHVhbHMgbWF0ZSBtb3JlIG9mdGVuIHRoYW4gZXhwZWN0ZWQgYnkgY2hhbmNlIGFuZCwgYXMgYSByZXN1bHQsIGdlbmV0aWMgZGl2ZXJzaXR5IHRocm91Z2hvdXQgdGhlIHJ1biBpcyBtYWludGFpbmVkIGF0IGEgaGlnaGVyIGxldmVsLiBBRE1HQSB3YXMgcHJldmlvdXNseSB0ZXN0ZWQgaW4gZHluYW1pYyBvcHRpbWl6YXRpb24gcHJvYmxlbXMgd2l0aCBwcm9taXNpbmcgcmVzdWx0czogdGhlIGFsZ29yaXRobSBzaG93cyB0byBvdXRwZXJmb3JtIHN0YW5kYXJkIEdBcyBhbmQgc3RhdGUtb2YtdGhlLWFydCBhcHByb2FjaGVzIG9uIHNldmVyYWwgcHJvYmxlbXMgYW5kIGR5bmFtaWNzLiBIb3dldmVyLCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIGFsZ29yaXRobSBkZWdyYWRlcyB3aGVuIHRoZSBmcmVxdWVuY3kgb2YgY2hhbmdlcyBpbmNyZWFzZXMuIER1ZSB0byB0aGUgcHJlbWlzZXMgdW5kZXIgd2hpY2ggQURNR0Egd2FzIHRlc3RlZCwgaXQgaGFzIGJlZW4gYXJndWVkIHRoYXQgdGhlIHJlcGxhY2VtZW50IHN0cmF0ZWd5IHRoYXQgZW1lcmdlcyBmcm9tIHRoZSBhbGdvcml0aG3igJlzIGRpc3NvcnRhdGl2ZSBtYXRpbmcgc3RyYXRlZ3kgbWF5IGJlIGhhcm1pbmcgdGhlIHBlcmZvcm1hbmNlIGluIHN1Y2ggc2l0dWF0aW9ucy4gVGhpcyBzdHVkeSBwcm9wb3NlcyBhbHRlcm5hdGl2ZSByZXBsYWNlbWVudCBzY2hlbWVzIHdpdGggdGhlIG9iamVjdGl2ZSBvZiBpbXByb3ZpbmcgQURNR0HigJlzIHBlcmZvcm1hbmNlIG9uIGZhc3QgY2hhbmdpbmcgZW52aXJvbm1lbnRzICh3aXRob3V0IGRhbWFnaW5nIHRoZSBwZXJmb3JtYW5jZSBvbiBzbG93ZXIgb25lcykuIFRoZSBzdHJhdGVnaWVzIG1haW50YWluIHRoZSBzaW1wbGljaXR5IG9mIHRoZSBhbGdvcml0aG0sIGkuZS4sIHRoZSBwYXJhbWV0ZXIgc2V0IGlzIG5vdCBpbmNyZWFzZWQuIFRoZSByZXBsYWNlbWVudCBzY2hlbWVzIHdlcmUgdGVzdGVkIGluIGR5bmFtaWMgZW52aXJvbm1lbnRzIGJhc2VkIG9uIHN0YXRpb25hcnkgZnVuY3Rpb25zIHdpdGggZGlmZmVyZW50IGNoYXJhY3RlcmlzdGljcywgc2hvd2luZyB0byBpbXByb3ZlIHN0YW5kYXJkIEFETUdB4oCZcyBwZXJmb3JtYW5jZSBpbiBmYXN0IGR5bmFtaWMgcHJvYmxlbXMuIDwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwODcwLzMwODcwLnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+ODY8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPkEgUkVDRURJTkcgSE9SSVpPTiBHRU5FVElDIEFMR09SSVRITSBGT1IgRFlOQU1JQyBNVUxUSS1UQVJHRVQgQVNTSUdOTUVOVCBBTkQgVFJBQ0tJTkcgLSBBIENhc2UgU3R1ZHkgb24gdGhlIE9wdGltYWwgUG9zaXRpb25pbmcgb2YgVHVnIFZlc3NlbHMgYWxvbmcgdGhlIE5vcnRoZXJuIE5vcndlZ2lhbiBDb2FzdDwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPlJvYmluIFQuIEJ5ZSwgU2llYmUgQi4gdmFuIEFsYmFkYSBhbmQgSGFyYWxkIFluZGVzdGFkPC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5Db21iaW5pbmcgbWV0aG9kb2xvZ2llcyBmcm9tIGN5YmVybmV0aWNzIGFuZCBhcnRpZmljaWFsIGludGVsbGlnZW5jZSAoQUkpLCB3ZSBwcmVzZW50IGEgcmVjZWRpbmcgaG9yaXpvbiBnZW5ldGljIGFsZ29yaXRobSAoUkhHQSkgZm9yIHNvbHZpbmcgdGhlIHRhc2sgb2YgZHluYW1pYyBhc3NpZ25tZW50IGFuZCB0cmFja2luZyBvZiBtdWx0aXBsZSB0YXJnZXRzLiBXZSBkZW1vbnN0cmF0ZSB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSBhbGdvcml0aG0gYnkgbWVhbnMgb2YgYSBjYXNlIHN0dWR5IG9uIG9wdGltYWwgcG9zaXRpb25pbmcgb2YgdHVncyB0byByZWR1Y2UgdGhlIHJpc2sgb2Ygb2lsIHRhbmtlciBkcmlmdGluZyBhY2NpZGVudHMgYWxvbmcgdGhlIG5vcnRoZXJuIE5vcndlZ2lhbiBjb2FzdC4gVGhyb3VnaCBzaW11bGF0aW9ucyB3ZSBzaG93IHRoYXQgdGhlIFJIR0EgcGVyZm9ybXMgaW50ZWxsaWdlbnQgdGFyZ2V0IGFzc2lnbm1lbnQgYW5kIGNsb3NlIHRhcmdldCB0cmFja2luZyB3aGlsZSBjb25zdGFudGx5IHJlZXZhbHVhdGluZyBpdHMgc3VnZ2VzdGVkIHNvbHV0aW9ucyBiYXNlZCBvbiBjdXJyZW50IGFuZCBwcmVkaWN0ZWQgaW5mb3JtYXRpb24uIFdlIHNlZSBncmVhdCBwb3RlbnRpYWwgZm9yIGZ1cnRoZXIgZGV2ZWxvcG1lbnQgYW5kIGNvbnNpZGVyIG91ciBSSEdBIGFuZCBwcm9ibGVtIGRlc2NyaXB0aW9uIGEgcGxhdGZvcm0gZm9yIGZ1cnRoZXIgcmVzZWFyY2guPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA4NzEvMzA4NzEucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDxzcGFuIGlkPSJBcmVhMFNob3J0UGFwZXJzIiBjbGFzcz0icGFwZXJUeXBlIj5TaG9ydCBQYXBlcnM8L3NwYW4+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij4xOTwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+QSBHRU5FVElDIEFMR09SSVRITSBBUFBST0FDSCBUTyBBIDNEIEhJR0hXQVkgQUxJR05NRU5UIERFVkVMT1BNRU5UPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+Qm90YW4gTS4gQWhtYWQgQUwtSGFkYWQgYW5kIE1pY2hhZWwgTWF3ZGVzbGV5PC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5UaGlzIHBhcGVyIHJlcG9ydHMgZm9yIHRoZSBwb3NzaWJpbGl0eSBvZiBkZXZlbG9waW5nIGEgZ2VuZXRpYyBhbGdvcml0aG0gKEdBKSBiYXNlZCB0ZWNobmlxdWUgbW9kZWwgdG8gb3B0aW1pemUgaGlnaHdheSBhbGlnbm1lbnQuIEl0IHN1Z2dlc3RzIGEgbm92ZWwgdGVjaG5pcXVlIHRvIG9wdGltaXplIGEgaGlnaHdheSBhbGlnbm1lbnQgaW4gYSB0aHJlZSBkaW1lbnNpb25hbCBzcGFjZS4gVGhlIHRlY2huaXF1ZSBjb25zaWRlcnMgc3RhdGlvbiBwb2ludHMgdG8gc2ltdWx0YW5lb3VzbHkgY29uZmlndXJlIGJvdGggaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgYWxpZ25tZW50IHJhdGhlciB0aGFuIGNvbnNpZGVyaW5nIHRoZSBleGlzdGluZyBjb252ZW50aW9uYWwgcHJpbmNpcGxlcyBvZiBkZXNpZ24gd2hpY2ggZGVhbHMgd2l0aCBib3RoIGFsaWdubWVudHMgaW4gdHdvIGRpZmZlcmVudCBzdGFnZXMgYW5kIHVzZXMgaG9yaXpvbnRhbCBpbnRlcnNlY3Rpb24gcG9pbnRzIChISVApLCB2ZXJ0aWNhbCBpbnRlcnNlY3Rpb24gcG9pbnRzIChWSVApLCB0YW5nZW50cyAoVCksIGN1cnZlIHJhZGlpIChSKSwgZGVmbGVjdGlvbiBhbmdsZXMgKOKIhiksIGdyYWRlIHZhbHVlcyAoJiMxNzc7IGcgJSksIGFuZCBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBjdXJ2ZSBmaXR0aW5ncyB0byBkZXBpY3QgdGhlIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIGFsaWdubWVudHMuIFRoZSBwcm9wb3NlZCBtZXRob2QgaXMgZXhwZWN0ZWQgdG8gcHJvZHVjZSBhIGdsb2JhbCBvcHRpbWFsIG9yIG5lYXIgb3B0aW1hbCBzb2x1dGlvbiBhbmQgYWxzbyB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBoaWdod2F5IGFsaWdubWVudCBkZXNpZ24gZWxlbWVudHMgcmVxdWlyZWQgYW5kIGNvbnNlcXVlbnRseSByZWR1Y2UgdGhlIGNvbnN0cmFpbnRzIGltcG9zZWQgb24gYWxpZ25tZW50IHBsYW5uaW5nIGFuZCBkZXNpZ24uIFRoZSByZXN1bHRzIG9idGFpbmVkIGhhdmUgZ29vZCBtZXJpdHMgYW5kIGVuY291cmFnZSBmdXJ0aGVyIGludmVzdGlnYXRpb25zIGZvciBiZXR0ZXIgc29sdXRpb25zLgogCjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwNjAyLzMwNjAyLnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+MjE8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPkNPTlNUUkFJTlQgQkFTRUQgU0NIRURVTElORyBJTiBBIEdFTkVUSUMgQUxHT1JJVEhNIEZPUiBUSEUgU0lOR0xFIE1BQ0hJTkUgU0NIRURVTElORyBQUk9CTEVNIFdJVEggU0VRVUVOQ0UtREVQRU5ERU5UIFNFVFVQIFRJTUVTPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+QXltZW4gU2lvdWQsIE1hcmMgR3JhdmVsIGFuZCBDYXJvbGluZSBHYWduJiMyMzM7PC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5UaGlzIHBhcGVyIHByZXNlbnRzIGEgaHlicmlkIGFwcHJvYWNoIGJhc2VkIG9uIHRoZSBpbnRlZ3JhdGlvbiBiZXR3ZWVuIEdlbmV0aWMgQWxnb3JpdGhtIChHQSkgYW5kIENvbnN0cmFpbnQgQmFzZWQgU2NoZWR1bGluZyAoQ0JTKSBhcHByb2FjaGVzIGZvciBzb2x2aW5nIGEgc2NoZWR1bGluZyBwcm9ibGVtLiBUaGUgbWFpbiBjb250cmlidXRpb25zIGFyZSB0aGUgaW50ZWdyYXRpb24gb2YgdGhlIENCUyBhcHByb2FjaCBpbiB0aGUgcmVwcm9kdWN0aW9uIGFuZCB0aGUgaW50ZW5zaWZpY2F0aW9uIHByb2Nlc3NlcyBvZiBhIEdBIGF1dG9ub21vdXNseS4gVGhlIHByb3Bvc2VkIG1ldGhvZG9sb2d5IGlzIGFwcGxpZWQgdG8gYSBzaW5nbGUgbWFjaGluZSBzY2hlZHVsaW5nIHByb2JsZW0gd2l0aCBzZXF1ZW5jZS1kZXBlbmRlbnQgc2V0dXAgdGltZXMgZm9yIHRoZSBvYmplY3RpdmUgb2YgbWluaW1pemluZyB0aGUgdG90YWwgdGFyZGluZXNzLiBBIHNlbnNpdGl2aXR5IGFuYWx5c2lzIG9mIHRoZSBoeWJyaWQgbWV0aG9kb2xvZ3kgaXMgY2FycmllZCBvdXQgdG8gY29tcGFyZSB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIEdBIGFuZCB0aGUgaW50ZWdyYXRlZCBHQS1DQlMgYXBwcm9hY2hlcyBvbiBkaWZmZXJlbnQgYmVuY2htYXJrcyBmcm9tIHRoZSBsaXRlcmF0dXJlLjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwNjA2LzMwNjA2LnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+MjY8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPkVYUExPUkFUSU9OIE9GIFFVQU5USVRBVElWRSBBU1NFU1NNRU5UIElOIFNZU1RFTVMgQVJDSElURUNUVVJFIFVTSU5HIEVWSURFTlRJQUwgUkVBU09OSU5HPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+WWl4aW5nIFNoYW4sIExpbGkgWWFuZyBhbmQgUm95IEthbGF3c2t5PC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5BIGtleSBpc3N1ZSBpbiBzdWNjZXNzZnVsIGRldmVsb3BpbmcgY29tcGxleCBzeXN0ZW1zIGlzIGhvdyB0byBhc3Nlc3MgdGhlIHBlcmZvcm1hbmNlIG9mIGFyY2hpdGVjdHVyZSBtb2RlbCBkdXJpbmcgdGhlIGRldmVsb3BtZW50IHByb2Nlc3MuIFRyYWRpdGlvbmFsIGFzc2Vzc21lbnQgdGVjaG5pcXVlcyBhcmUgc3ViamVjdGl2ZSBhbmQgdXN1YWxseSBoaWdobGlnaHQgd2Vha25lc3NlcyByYXRoZXIgdGhhbiBwcm92aWRlIHF1YW50aXRhdGl2ZSBhbmQgb2JqZWN0aXZlIHJlc3VsdHMuIEluIGFkZGl0aW9uLCB0aGUgaW5jcmVhc2luZyBjb21wbGV4aXR5IG9mIHN5c3RlbXMgbm93YWRheXM7IGhhcyBsZWQgdG8gYSBtb3ZlIGZyb20gZmVkZXJhdGVkIHN5c3RlbXMgd2hpY2ggd2VyZSBjbG9zZWQgYW5kIHRhcmdldCB1bmlxdWUgdG8gZW1iZWRkZWQgb3BlbiBzeXN0ZW1zLCB3aGljaCBleHRlbmRzIG5ldyBjcml0ZXJpYSB0byBiZSBjb25zaWRlcmVkIGluIHRoZSBhc3Nlc3NtZW50LiBUaGlzIHBhcGVyIHByb3ZpZGVzIGFuIGluc2lnaHQgaW50byBob3cgRXZpZGVudGlhbCBSZWFzb25pbmcgKEVSKSBhcHByb2FjaCBhcyB0aGUgc3BlY2lmaWMgTXVsdGktQXR0cmlidXRlIERlY2lzaW9uIE1ha2luZyAoTUFETSkgbWV0aG9kIGNhbiBiZSB1c2VkIGFzIGEgdHlwZSBvZiBzeXN0ZW0gYXNzZXNzbWVudCB0ZWNobmlxdWUuIFRoZSB0aGVvcnkgYW5kIGltcGxlbWVudGF0aW9uIGRldGFpbHMgb2YgRVIgd2l0aCBhbiBpbml0aWFsIGNhc2Ugc3R1ZHkgYXJlIHByZXNlbnRlZC48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDYyOS8zMDYyOS5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjI4PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5NVUxUSS1PQkpFQ1RJVkUgT1BUSU1JWkFUSU9OIE9GIEJPVEggUFVNUElORyBFTkVSR1kgQU5EIE1BSU5URU5BTkNFIENPU1RTIElOIE9JTCBQSVBFTElORSBORVRXT1JLUyBVU0lORyBHRU5FVElDIEFMR09SSVRITVM8L2gzPjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QXV0aG9yczo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGg0IGNsYXNzPSJhdXRob3JzIj5FaHNhbiBBYmJhc2kgYW5kIFZhaGlkIEdhcm91c2k8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPlRoaXMgcGFwZXIgcHJvcG9zZXMgYW4gb3B0aW1pemF0aW9uIG1vZGVsIGZvciB0aGUgcGlwZWxpbmUgb3BlcmF0aW9uIHByb2JsZW0gdXNpbmcgYSBkdWFsLW9iamVjdGl2ZSBub24tZG9taW5hdGVkIHNvcnRpbmcgZ2VuZXRpYyBhbGdvcml0aG0gKE5TR0EtSUkpLiBPbmUgYW5kIGZvcmVtb3N0IG9iamVjdGl2ZSBpcyB0byBtaW5pbWl6ZSBwdW1waW5nIGVuZXJneSBjb3N0cy4gVGhlIHNlY29uZCBvYmplY3RpdmUgaXMgdG8gcmVjb2duaXplIHRoZSBwaXBlbGluZSBvcGVyYXRvcnPigJkgY29uY2VybiBvbiBwdW1wcyBtYWludGVuYW5jZSBjb3N0cyBieSByZWR1Y2luZyB0aGUgbnVtYmVyIG9mIHRpbWVzIHB1bXBzIGFyZSB0dXJuZWQgb24gYW5kIG9mZi4gVGhpcyBpcyBjb21tb25seSBiZWxpZXZlZCBhcyBhIG1haW4gc291cmNlIG9mIHdlYXIgYW5kIHRlYXIgb24gdGhlIHB1bXBzLiBUaGUgZm9ybXVsYXRpb24gb2YgdGhlIHByb2JsZW0gaXMgcHJlc2VudGVkIGluIGRldGFpbCBhbmQgdGhlIG1vZGVsIGlzIHRlc3RlZCBvbiBhIGh5cG90aGV0aWNhbCBjYXNlIHN0dWR5ICh3aGljaCBpcyBiYXNlZCBvbiBjb25zdWx0YXRpb24gd2l0aCB0d28gaW5kdXN0cmlhbCBwYXJ0bmVycykuIFRoZSBvdXRwdXQgcmVzdWx0cyBhcmUgcHJvbWlzaW5nIHNpbmNlIHRoZXkgd291bGQgZ2l2ZSBvcGVyYXRvcnMgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiBkaWZmZXJlbnQgb3B0aW1hbCBzY2VuYXJpb3Mgb24gYSDigJxQYXJldG8gZnJvbnTigJ0uIE9wZXJhdG9ycyBjYW4gdmlzdWFsbHkgYXNzZXNzIHNldmVyYWwgYWx0ZXJuYXRpdmVzLCBhbmQgYW5hbHlzZSB0aGUgY29zdC1lZmZlY3RpdmVuZXNzIG9mIGVhY2ggc2NlbmFyaW8gaW4gdGVybXMgb2YgYm90aCBvYmplY3RpdmUgZnVuY3Rpb25zLjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwNjM4LzMwNjM4LnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+MzE8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPkVWT0xVVElPTkFSWSBBTEdPUklUSE1TIEZPUiBTT0xWSU5HIFFVQVNJIEdFT01FVFJJQyBQUk9HUkFNTUlORyBQUk9CTEVNUzwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPlIuIFRvc2Nhbm8gYW5kIFAuIEx5b25uZXQ8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPkluIHRoaXMgcGFwZXIgd2UgaW50cm9kdWNlIGFuIGV4dGVuc2lvbiBvZiBzdGFuZGFyZCBnZW9tZXRyaWMgcHJvZ3JhbW1pbmcgKEdQKSBwcm9ibGVtcyB3aGljaCB3ZSBjYWxsIHF1YXNpIGdlb21ldHJpYyBwcm9ncmFtbWluZyAoUUdQKSBwcm9ibGVtcy4gVGhlIGNvbnNpZGVyYXRpb24gb2YgdGhpcyBwYXJ0aWN1bGFyIGtpbmQgb2Ygbm9ubGluZWFyIGFuZCBwb3NzaWJseSBub24gc21vb3RoIG9wdGltaXphdGlvbiBwcm9ibGVtIGlzIG1vdGl2YXRlZCBieSB0aGUgZmFjdCB0aGF0IG1hbnkgZW5naW5lZXJpbmcgcHJvYmxlbXMgY2FuIGJlIGZvcm11bGF0ZWQgYXMgYSBRR1AuIEhvd2V2ZXIsIHNvbHZpbmcgYSBRR1AgcmVtYWlucyBhIGRpZmZpY3VsdCB0YXNrIGR1ZSB0byBpdHMgaW50cmluc2ljIG5vbi1jb252ZXggbmF0dXJlLiBUaGlzIGlzIHdoeSB3ZSBpbnZlc3RpZ2F0ZSB0aGUgcG9zc2liaWxpdHkgb2YgdXNpbmcgZXZvbHV0aW9uYXJ5IGFsZ29yaXRobXMgKEVBKSBmb3Igc29sdmluZyBhIFFHUCBwcm9ibGVtLiBUaGUgbWFpbiBpZGVhIGRldmVsb3BlZCBpbiB0aGlzIHBhcGVyIGlzIHRvIGNvbWJpbmUgZXZvbHV0aW9uYXJ5IGFsZ29yaXRobXMgd2l0aCBpbnRlcmlvciBwb2ludCBtZXRob2QgZm9yIGVmZmljaWVudGx5IHNvbHZpbmcgUUdQIHByb2JsZW1zLiBBbiBpbnRlcmVzdGluZyBmZWF0dXJlIG9mIHRoZSBwcm9wb3NlZCBhcHByb2FjaCBpcyB0aGF0IGl0IGRvZXMgbm90IG5lZWQgdG8gZGV2ZWxvcCBzcGVjaWZpYyBwcm9ncmFtIHNvbHZlciBhbmQgd29ya3Mgd2VsbCB3aXRoIGFueSBleGlzdGluZyBFQSBhbmQgYXZhaWxhYmxlIHNvbHZlciBhYmxlIHRvIHNvbHZlIGNvbnZlbnRpb25hbCBHUC4gU29tZSBjb25zaWRlcmF0aW9ucyBvbiB0aGUgcm9idXN0bmVzcyBpc3N1ZSBhcmUgYWxzbyBwcmVzZW50ZWQuIE51bWVyaWNhbCBleHBlcmltZW50cyBhcmUgdXNlZCB0byB2YWxpZGF0ZSB0aGUgcHJvcG9zZWQgbWV0aG9kLjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwNzE5LzMwNzE5LnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+MzU8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPlRSQUlOIFRJTUVUQUJMRSBHRU5FUkFUSU9OIFVTSU5HIEdFTkVUSUMgQUxHT1JJVEhNUzwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkMuIEouIEhpbmRlLCBNLiBTLiBXaXRoYWxsLCBJLiBXLiBQaGlsbGlwcywgVC4gVy4gSmFja3NvbiwgUy4gQnJvd24gYW5kIFIuIFdhdHNvbjwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+VGhlIHNjaGVkdWxpbmcgb2YgcmFpbHdheSB0cmFpbnMgaGFzIGJlZW4gYSByZXNlYXJjaCBwcm9ibGVtIGZvciBtYW55IHllYXJzLiBNYW55IG9mIHRoZSBjaG9pY2VzIHJlcXVpcmVkIGFyZSBub3Qga25vd24gYSBwcmlvcmkgYW5kIHJlcXVpcmUgZXhwbG9yYXRpb24gb2YgdGhlIHByb2JsZW0gdG8gZGV0ZXJtaW5lIHRoZW0uIEEgbW9kdWxhciBHZW5ldGljIHN5c3RlbSB3YXMgZGVzaWduZWRtYWtlIHRoZSBldmFsdWF0aW9uIGZ1bmN0aW9uIGFuZCBwcmVwYXJhdGlvbiBvZiB0aGUgdGltZXRhYmxlIHRyYWN0YWJsZS4gVGhlIEdlbmV0aWMgc3lzdGVtIGNvbnNpc3RzIG9mIGEgR2Vub21lLCBzcGxpdCBpbnRvIENocm9tb3NvbWVzIHNvIHRoZSBleHRyYSBjaG9pY2VzIHRoYXQgYmVjb21lIGtub3duIHRocm91Z2hvdXQgdGhlIGV2b2x1dGlvbiBjYW4gYmUgYWRkZWQgdG8gdGhlIENocm9tb3NvbWVzLiBBIHdlaWdodGVkIGZpdG5lc3MgZnVuY3Rpb24gYW5kIGEgbXVsdGlvYmplY3RpdmUgbm9uLWRvbWluYXRlZCBmaXRuZXNzIGZ1bmN0aW9uIHdlcmUgdHJpZWQsIGFuZCB0aGVuIHBhcnRpYWwgb2JqZWN0aXZlIHJhbmtpbmcgd2FzIGFkZGVkLiBUaGUgc3lzdGVtIGhhcyB0YWNrbGVkIGEgbWl4dHVyZSBvZiBwcm9ibGVtcyBoYXMKcHJvZHVjZWQgcHJvbWlzaW5nIHJlc3VsdHMuPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA3NDgvMzA3NDgucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij4zNjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+VVNJTkcgU0VMRi1TSU1JTEFSSVRZIFRPIEFEQVBUIEVWT0xVVElPTkFSWSBFTlNFTUJMRVMgRk9SIFRIRSBESVNUUklCVVRFRCBDTEFTU0lGSUNBVElPTiBPRiBEQVRBIFNUUkVBTVM8L2gzPjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QXV0aG9yczo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGg0IGNsYXNzPSJhdXRob3JzIj5DbGFyYSBQaXp6dXRpIGFuZCBHaWFuZG9tZW5pY28gU3Blenphbm88L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPkRpc3RyaWJ1dGVkIHN0cmVhbS1iYXNlZCBjbGFzc2lmaWNhdGlvbiBtZXRob2RzIGhhdmUgbWFueSBpbXBvcnRhbnQgYXBwbGljYXRpb25zIHN1Y2ggYXMgc2Vuc29yIGRhdGEgYW5hbHlzaXMsIG5ldHdvcmsgc2VjdXJpdHksIGFuZCBidXNpbmVzcyBpbnRlbGxpZ2VuY2UuIEFuIGltcG9ydGFudCBjaGFsbGVuZ2UgaXMgdG8gYWRkcmVzcyB0aGUgaXNzdWUgb2YgY29uY2VwdCBkcmlmdCBpbiB0aGUgZGF0YSBzdHJlYW0gZW52aXJvbm1lbnQsIHdoaWNoIGlzIG5vdCBlYXNpbHkgaGFuZGxlZCBieSB0aGUgdHJhZGl0aW9uYWwgbGVhcm5pbmcgdGVjaG5pcXVlcy4gVGhpcyBwYXBlciBwcmVzZW50cyBhIEdlbmV0aWMgUHJvZ3JhbW1pbmcgKEdQKSBiYXNlZCBib29zdGluZyBlbnNlbWJsZSBtZXRob2QgZm9yIHRoZSBjbGFzc2lmaWNhdGlvbiBvZiBkaXN0cmlidXRlZCBzdHJlYW1pbmcgZGF0YSBhYmxlIHRvIGFkYXB0IGluIHByZXNlbmNlIG9mIGNvbmNlcHQgZHJpZnQuIFRoZSBhcHByb2FjaCBoYW5kbGVzIGZsb3dzIG9mIGRhdGEgY29taW5nIGZyb20gbXVsdGlwbGUgbG9jYXRpb25zIGJ5IGJ1aWxkaW5nIGEgZ2xvYmFsIG1vZGVsIG9idGFpbmVkIGJ5IHRoZSBhZ2dyZWdhdGlvbiBvZiB0aGUgbG9jYWwgbW9kZWxzIGNvbWluZyBmcm9tIGVhY2ggbm9kZS4gVGhlIGFsZ29yaXRobSB1c2VzIGEgZnJhY3RhbCBkaW1lbnNpb24tYmFzZWQgY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneSwgYmFzZWQgb24gc2VsZi1zaW1pbGFyaXR5IG9mIHRoZSBlbnNlbWJsZSBiZWhhdmlvciwgdGhhdCBwZXJtaXRzIHRoZSBjYXB0dXJlIG9mIHRpbWUtZXZvbHZpbmcgdHJlbmRzIGFuZCBwYXR0ZXJucyBpbiB0aGUgc3RyZWFtLCBhbmQgdG8gcmV2ZWFsIGNoYW5nZXMgaW4gZXZvbHZpbmcgZGF0YSBzdHJlYW1zLiBFeHBlcmltZW50YWwgcmVzdWx0cyBvbiBhIHJlYWwgbGlmZSBkYXRhIHNldCBzaG93IHRoZSB2YWxpZGl0eSBvZiB0aGUgYXBwcm9hY2ggaW4gbWFpbnRhaW5pbmcgYW4gYWNjdXJhdGUgYW5kIHVwLXRvLWRhdGUgR1AgZW5zZW1ibGUuPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA3NDkvMzA3NDkucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij40MTwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+SFlCUklEIFBPUFVMQVRJT04tQkFTRUQgSU5DUkVNRU5UQUwgTEVBUk5JTkcgVE8gQVNTSUdOIFRFUk1JTkFMUyBUTyBDT05DRU5UUkFUT1JTCjwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkV1ZyYjMjMzO25pYSBNb3JlaXJhIEJlcm5hcmRpbm8sIEFuYWJlbGEgTW9yZWlyYSBCZXJuYXJkaW5vLCBKdWFuIE1hbnVlbCBTJiMyMjU7bmNoZXotUCYjMjMzO3JleiwgSnVhbiBBbnRvbmlvIEcmIzI0MzttZXotUHVsaWRvIGFuZCBNaWd1ZWwgQW5nZWwgVmVnYS1Sb2RyJiMyMzc7Z3VlejwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+SW4gdGhlIGxhc3QgZGVjYWRlLCB3ZSBoYXZlIHNlZW4gYSBzaWduaWZpY2FudCBncm93dGggaW4gY29tbXVuaWNhdGlvbiBuZXR3b3Jrcy4gSW4gY2VudHJhbGlzZWQgY29tbXVuaWNhdGlvbiBuZXR3b3JrcywgYSBjZW50cmFsIGNvbXB1dGVyIHNlcnZlcyBzZXZlcmFsIHRlcm1pbmFscyBvciB3b3Jrc3RhdGlvbnMuIEluIGxhcmdlIG5ldHdvcmtzLCBzb21lIGNvbmNlbnRyYXRvcnMgYXJlIHVzZWQgdG8gaW5jcmVhc2UgdGhlIG5ldHdvcmsgZWZmaWNpZW5jeS4gQSBjb2xsZWN0aW9uIG9mIHRlcm1pbmFscyBpcyBjb25uZWN0ZWQgdG8gYSBjb25jZW50cmF0b3IgYW5kIGVhY2ggY29uY2VudHJhdG9yIGlzIGNvbm5lY3RlZCB0byB0aGUgY2VudHJhbCBjb21wdXRlci4gSW4gdGhpcyBwYXBlciB3ZSBwcm9wb3NlIGEgSHlicmlkIFBvcHVsYXRpb24tYmFzZWQgSW5jcmVtZW50YWwgTGVhcm5pbmcgKEhQQklMKSB0byBhc3NpZ24gdGVybWluYWxzIHRvIGNvbmNlbnRyYXRvcnMuIFdlIHVzZSB0aGlzIGFsZ29yaXRobSB0byBkZXRlcm1pbmUgdGhlIG1pbmltdW0gY29zdCB0byBmb3JtIGEgbmV0d29yayBieSBjb25uZWN0aW5nIGEgZ2l2ZW4gY29sbGVjdGlvbiBvZiB0ZXJtaW5hbHMgdG8gYSBnaXZlbiBjb2xsZWN0aW9uIG9mIGNvbmNlbnRyYXRvcnMuIFdlIHNob3cgdGhhdCBIUEJJTCBpcyBhYmxlIHRvIGFjaGlldmUgZ29vZCBzb2x1dGlvbnMsIGltcHJvdmluZyB0aGUgcmVzdWx0cyBvYnRhaW5lZCBieSBwcmV2aW91cyBhcHByb2FjaGVzLjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwNzYzLzMwNzYzLnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+NDg8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPkdFTkVUSUMgRVZPTFVUSU9OIE9GIOKAmFNPUlRJTkfigJkgUFJPR1JBTVMgVEhST1VHSCBBIE5PVkVMIEdFTk9UWVBFLVBIRU5PVFlQRSBNQVBQSU5HIDwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkRhbmllbGEgWGhlbWFsaSwgQ2hyaXN0b3BoZXIgSi4gSGluZGUgYW5kIFJvZ2VyIEcuIFN0b25lPC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5UaGlzIHBhcGVyIHByZXNlbnRzIGFuIGFkYXB0YWJsZSBnZW5ldGljIGV2b2x1dGlvbmFyeSBzeXN0ZW0sIHdoaWNoIGluY2x1ZGVzIGFuIGlubm92YXRpdmUgYXBwcm9hY2ggdG8gbWFwcGluZyBnZW5vdHlwZXMgdG8gcGhlbm90eXBlcyB0aHJvdWdoIFhNTCBydWxlcy4gVGhlIGV2b2x1dGlvbmFyeSBzeXN0ZW0gd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCB0byBldm9sdmUgUmVndWxhciBFeHByZXNzaW9ucyAoUkVzKSB0byBhdXRvbWF0ZSB0aGUgZXh0cmFjdGlvbiBvZiB3ZWIgaW5mb3JtYXRpb24uIEhvd2V2ZXIsIHRoZSBzeXN0ZW0gaGFzIGJlZW4gYWRhcHRlZCB0byB3b3JrIHdpdGggYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBkb21haW4g4oCTIENvbXBsZXRlIFNvZnR3YXJlIFByb2dyYW1zIOKAkyB0byBkZW1vbnN0cmF0ZSB0aGUgZmxleGliaWxpdHkgb2YgdGhpcyBhcHByb2FjaC4gU3BlY2lmaWNhbGx5LCB0aGUgcGFwZXIgY29uY2VudHJhdGVzIG9uIHRoZSBldm9sdXRpb24gb2Yg4oCYU29ydGluZ+KAmSBwcm9ncmFtcy4gRXhwZXJpbWVudHMgc2hvdyB0aGF0IG91ciBldm9sdXRpb25hcnkgc3lzdGVtIGlzIHN1Y2Nlc3NmdWwgYW5kIGNhbiBiZSBhZGFwdGVkIHRvIHdvcmsgZm9yIGNoYWxsZW5naW5nIGRvbWFpbnMgd2l0aCBtaW5pbXVtIGVmZm9ydC48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDc4NC8zMDc4NC5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjUyPC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5PUFRJTUlaSU5HIEdFTkVUSUMgQUxHT1JJVEhNIFBBUkFNRVRFUlMgRk9SIEEgU1RPQ0hBU1RJQyBHQU1FPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+SmFtZXMgR2xlbm48L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPkNhbuKAmXQgU3RvcCBpcyBhIGplb3BhcmR5IHN0b2NoYXN0aWMgZ2FtZSBwbGF5ZWQgb24gYW4gb2N0YWdvbmFsIGdhbWUgYm9hcmQgd2l0aCBmb3VyIHNpeC1zaWRlZCBkaWNlLiBQcmV2aW91cyB3b3JrIGdlbmVyYWxpemVkIGEgd2VsbC1rbm93biBoZXVyaXN0aWMgc3RyYXRlZ3kgZm9yIHRoZSBzb2xpdGFpcmUgZ2FtZSBhbmQgYXR0ZW1wdGVkIHRvIG9wdGltaXplIHRoZSBwYXJhbWV0ZXJzIG9mIHRoZSBnZW5lcmFsaXplZCBzdHJhdGVneSB1c2luZyBhIGdlbmV0aWMgYWxnb3JpdGhtIChHQSkuIFRoZXJlIHdlcmUgdHdvIGNoYWxsZW5nZXMgaW4gdGhhdCBvcHRpbWl6YXRpb24gcHJvY2VzczogZmlyc3QsIHRoZSBzdG9jaGFzdGljIG5hdHVyZSBvZiB0aGUgZ2FtZSByZXN1bHRzIGluIGEgdmVyeSBub2lzeSBmaXRuZXNzIGZ1bmN0aW9uOyBzZWNvbmQsIHRoZSBmaXRuZXNzIGZ1bmN0aW9uIGlzIGNvbXB1dGF0aW9uYWxseSBleHBlbnNpdmUuIEluIHRoaXMgd29yayB3ZSBjb250aW51ZSB0aGUgb3B0aW1pemF0aW9uIHByb2Nlc3MgZm9yIHRoZSBoZXVyaXN0aWMgc3RyYXRlZ3kgYnkgb3B0aW1pemluZyB0aGUgR0E6IGZvciBhIGZpeGVkIG51bWJlciBvZiBmaXRuZXNzIGZ1bmN0aW9uIGV2YWx1YXRpb25zLCB3ZSBpbnZlc3RpZ2F0ZSB0aGUgZWZmZWN0cyBvZiB2YXJ5aW5nIHRoZSBHQSBwYXJhbWV0ZXJzIChpbiBwYXJ0aWN1bGFyIHRoZSBwb3B1bGF0aW9uIHNpemUgYW5kIG51bWJlciBvZiBnZW5lcmF0aW9ucyksIHdoaWNoIGluIHR1cm4gYWZmZWN0IHRoZSBudW1iZXIgb2Ygc2FtcGxlcyBwZXIgaW5kaXZpZHVhbCBhbmQgdGh1cyBub2lzZSBhcyB3ZWxsLiBXZSBhbHNvIGV4YW1pbmUgZGlmZmVyZW50IHNhbXBsaW5nIHNjaGVkdWxlczsgb3VyIHNjaGVkdWxlcyBhcmUgdW5pcXVlIGluIHRoYXQgc2VsZWN0aW5nIHRoZSBmaW5hbCBjaGFtcGlvbiBpcyBjb25zaWRlcmVkIGEgc2NoZWR1bGFibGUgcGhhc2UuIFRoZSBHQSBwYXJhbWV0ZXJzIGFyZSBmaXJzdCBvcHRpbWl6ZWQgb24gYW4gZWFzeS10by1jb21wdXRlIHRlc3QgZnVuY3Rpb24uIFRoZSByZXN1bHRpbmcgR0EgcGFyYW1ldGVycyBhcmUgZWZmZWN0aXZlIG9uIHRoZSBvcmlnaW5hbCBwcm9ibGVtIGFuZCBhcyBhIHJlc3VsdCB3ZSBvYnRhaW4gYW4gaW1wcm92ZWQgaGV1cmlzdGljIHN0cmF0ZWd5IGZvciBDYW7igJl0IFN0b3AuPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA3OTEvMzA3OTEucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij42MTwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+R0VORVRJQyBBTEdPUklUSE0gQkFTRUQgT04gRElGRkVSRU5USUFMIEVWT0xVVElPTiBXSVRIIFZBUklBQkxFIExFTkdUSCAgLSBSdW5vZmYgUHJlZGljdGlvbiBvbiBhbiBBcnRpZmljaWFsIEJhc2luPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+QW5hIEZyZWlyZSwgVmFuZXNzYSBBZ3VpYXItUHVsaWRvLCBKdWFuIFIuIFJhYnUmIzI0MTthbCBhbmQgTWFydGEgR2FycmlkbzwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+RGlmZmVyZW50aWFsIGV2b2x1dGlvbiBpcyBhIHN1Y2Nlc3NmdWwgYXBwcm9hY2ggdG8gc29sdmUgb3B0aW1pemF0aW9uIHByb2JsZW1zLiBUaGUgd2F5IGl0IHBlcmZvcm1zIHRoZSBjcmVhdGlvbiBvZiB0aGUgaW5kaXZpZHVhbCBhbGxvd3MgYSBzcG9udGFuZW91cyBzZWxmLWFkYXB0YWJpbGl0eSB0byB0aGUgZnVuY3Rpb24uIEluIHRoaXMgcGFwZXIsIGEgbmV3IG1ldGhvZCBiYXNlZCBvbiB0aGUgZGlmZmVyZW50aWFsIGV2b2x1dGlvbiBwYXJhZGlnbSBoYXMgYmVlbiBkZXZlbG9wZWQuIEFuIGlubm92YXRpdmUgZmVhdHVyZSBoYXMgYmVlbiBhZGRlZDogdGhlIHZhcmlhYmxlIGxlbmd0aCBvZiB0aGUgZ2Vub3R5cGUsIHNvIHRoaXMgYXBwcm9hY2ggY2FuIGJlIGFwcGxpZWQgdG8gcHJlZGljdCBzcGVjaWFsIHRpbWUgc2VyaWVzLiBUaGlzIGFwcHJvYWNoIGhhcyBiZWVuIHRlc3RlZCBvdmVyIHJhaW5mYWxsIGRhdGEgZm9yIHJlYWwtdGltZSBwcmVkaWN0aW9uIG9mIGNoYW5naW5nIHdhdGVyIGxldmVscyBvbiBhbiBhcnRpZmljaWFsIGJhc2luLiBUaGlzIHdheSwgYSBmbG9vZCBwcmVkaWN0aW9uIHN5c3RlbSBjYW4gYmUgb2J0YWluZWQuPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA4MTQvMzA4MTQucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij42NDwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+T1BUSU1JWklORyBCLVNQTElORVMgVVNJTkcgR0VORVRJQyBBTEdPUklUSE1TIEFQUExJRUQgVE8gQUlSLVRSQUZGSUMgQ09ORkxJQ1QgUkVTT0xVVElPTjwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkNsZW1lbnQgUGV5cm9ubmUsIERhbmllbCBEZWxhaGF5ZSwgTWFyY2VsIE1vbmdlYXUgYW5kIExhdXJlbnQgTGFwYXNzZXQ8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPkNvbmZsaWN0IHJlc29sdXRpb24gaGFzIGFsd2F5cyBiZWVuIGEgc2Vuc2l0aXZlIG1hdHRlciBpbiBhaXItdHJhZmZpYyBtYW5hZ2VtZW50LiBDdXJyZW50IEV1cm9wZWFuIHByb2plY3RzIGFpbSBwYXJ0aWFsIG9yIHRvdGFsIGF1dG9tYXRpb24gb2YgYWlyIHRyYWZmaWMgY29udHJvbCB0byBkZWFsIHdpdGggdGhlIGNvbnN0YW50IGdyb3d0aCBvZiBhaXIgdHJhZmZpYy4gVGVjaG5vbG9naWNhbCBhZHZhbmNlcyBvbiBmbGlnaHQgbWFuYWdlbWVudCBzeXN0ZW0gYWxsb3dzIHVzIHRvIGNvbnNpZGVyIGFuIGF1dG9tYXRpYyBjb25mbGljdCByZXNvbHV0aW9uIHVzaW5nIGNvbnRpbnVvdXMgdHJhamVjdG9yaWVzLiBJbiB0aGlzIHBhcGVyLCB3ZSBwcmVzZW50IGEgbmV3IG1ldGhvZG9sb2d5IHRoYXQsIGZpcnN0LCByZWxpZXMgb24gQi1zcGxpbmVzIHRvIG1vZGVsIHRyYWplY3Rvcmllcywgc2Vjb25kbHkgbW9kZWxzIGFpci10cmFmZmljIGNvbmZsaWN0IHJlc29sdXRpb24gYXMgYW4gb3B0aW1pemF0aW9uIHByb2JsZW0gd2hvc2UgZGVjaXNpb24gdmFyaWFibGVzIGFyZSB0aGUgc3BsaW5lIGNvbnRyb2wgcG9pbnRzLiBGaW5hbGx5LCB3ZSB1c2UgZ2VuZXRpYyBhbGdvcml0aG1zIHRvIHRhY2tsZSB0aGlzIG9wdGltaXphdGlvbiBwcm9ibGVtIGluIG9yZGVyIHRvIGdlbmVyYXRlIG9wdGltYWwgY29uZmxpY3QtZnJlZSBzaXR1YXRpb25zLjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwODI4LzMwODI4LnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+Njk8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPk5BTk9TVFJVQ1RVUkVTIFRIRVJNQUwgRU1JU1NJT04gT1BUSU1JWkFUSU9OIFVTSU5HIEdFTkVUSUMgQUxHT1JJVEhNUyBBTkQgUEFSVElDTEUgU1dBUk1TPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+RS4gTmVmemFvdWksIEouIERyZXZpbGxvbiBhbmQgSy4gSm91bGFpbjwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+TmFub3RlY2hub2xvZ2llcyBhbmQgbmFub2ZhYnJpY2F0aW9uIHRlY2huaXF1ZXMgcHJvdmlkZWQgdW5tZWFzdXJlYWJsZSBwb3NzaWJpbGl0aWVzIHRvIGNvbnRyb2wgaW50cmluc2ljIG1pY3Jvc2NvcGljIGZlYXR1cmVzIG9mIG1hdGVyaWFscyBhbmQgc3RydWN0dXJlcyBpbiB0aGUgbGFzdCB5ZWFycy4gSW4gcGFydGljdWxhciwgbWF0ZXJpYWxzIG9wdGljYWwgcHJvcGVydGllcyBhbmQgbGlnaHQgcHJvcGFnYXRpb24gY29udHJvbCBoYXZlIGJlZW4gc29tZSBvZiB0aGUgbW9zdCBjaGFsbGVuZ2luZyBwcm9ibGVtcyBkdWUgdG8gdGhlaXIgdmFyaW91cyBhcHBsaWNhdGlvbiBwb3NzaWJsaXRpZXMuIFRoZSBwcmVzZW50IGludmVzdGlnYXRpb24gc2hvd3MgdGhhdCB0ZW1wb3JhbGx5IGNvaGVyZW50IHRoZXJtYWwgc291cmNlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGRlc2lnbmVkIGFuZCBvcHRpbWl6ZWQgd2l0aCBldm9sdXRpb25hcnkgb3B0aW1pemF0aW9uIG1ldGhvZHMgc3VjaCBhcyBnZW5ldGljIGFsZ29yaXRobXMgYW5kIHBhcnRpY2xlIHN3YXJtcy4gVGhpcyBsZWFkIHRvIGEgYmlsYXllciBzdHJ1Y3R1cmUgb2YgZ2VybWFuaXVtIGFuZCBzaWxpY29uIGNhcmJpZGUsIHdoaWNoIGlzLCB0byBvdXIga25vd2xlZGdlLCB0aGUgc2ltcGxlc3QgZXhpc3Rpbmcgc3RydWN0dXJlIHdpdGggc3VjaCBwcm9wZXJ0aWVzLjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwODM4LzMwODM4LnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+NzA8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPk9QVElNQUwgVklBQkxFIFBBVEggU0VBUkNIIEZPUiBBIENIRUVTRSBSSVBFTklORyBQUk9DRVNTIFVTSU5HIEEgTVVMVEktT0JKRUNUSVZFIEVBPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+U2FsbWEgTWVzbW91ZGksIE5hdGhhbGllIFBlcnJvdCwgUm9tYWluIFJldWlsbG9uLCBQYXVsIEJvdXJnaW5lIGFuZCBFdmVseW5lIEx1dHRvbjwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+VmlhYmlsaXR5IHRoZW9yeSBpcyBhIHZlcnkgYXR0cmFjdGl2ZSB0aGVvcmV0aWNhbCBhcHByb2FjaCBmb3IgdGhlIG1vZGVsaW5nIG9mIGNvbXBsZXggZHluYW1pY2FsIHN5c3RlbXMuIEhvd2V2ZXIsIGl0cyBzY29wZSBvZiBhcHBsaWNhdGlvbiBpcyBsaW1pdGVkIGR1ZSB0byB0aGUgaGlnaCBjb21wdXRhdGlvbmFsIHBvd2VyIGl0IG5lY2Vzc2l0YXRlcy4gRXZvbHV0aW9uYXJ5IGNvbXB1dGF0aW9uIGlzIGEgY29udmVuaWVudCB3YXkgdG8gYWRkcmVzcyBzb21lIGlzc3VlcyByZWxhdGVkIHRvIHRoaXMgdGhlb3J5LiBJbiB0aGlzIHBhcGVyLCB3ZSBwcmVzZW50IGEgbXVsdGlvYmplY3RpdmUgZXZvbHV0aW9uYXJ5IGFwcHJvYWNoIHRvIGFkZHJlc3MgdGhlIG9wdGltaXNhdGlvbiBwcm9ibGVtIHJlbGF0ZWQgdG8gdGhlIGNvbXB1dGF0aW9uIG9mIG9wdGltYWwgY29tbWFuZCBwcm9maWxlcyBvZiBhIGNvbXBsZXggcHJvY2Vzcy4gVGhlIGFwcGxpY2F0aW9uIHdlIGFkZHJlc3MgaGVyZSBpcyBhIHJlYWwgc2l6ZSBwcm9ibGVtIGZyb20gZGFpcnkgaW5kdXN0cnksIHRoZSBtb2RlbGluZyBvZiBhIENhbWVtYmVydCBjaGVlc2UgcmlwZW5pbmcgcHJvY2Vzcy4gV2UgaGF2ZSBkZXZlbG9wZWQgYSBwYXJhbGxlbCBpbXBsZW1lbnRhdGlvbiBvZiBhIG11bHRpb2JqZWN0aXZlIEVBIHRoYXQgaGFzIHByb2R1Y2VkIGEgUGFyZXRvIGZyb250IG9mIG9wdGltYWwgY29udHJvbCBwcm9maWxlcyAob3IgdHJhamVjdG9yaWVzKSwgd2l0aCByZXNwZWN0IHRvIGZvdXIgb2JqZWN0aXZlcy4gVGhlIFBhcmV0byBmcm9udCB3YXMgdGhlbiBhbmFseXNlZCBieSBhbiBleHBlcnQgd2hvIHNlbGVjdGVkIGEgaW50ZXJlc3RpbmcgY29tcHJvbWlzZSwgeWllbGRpbmcgYSBuZXcgY29udHJvbCBwcm9maWxlIHRoYXQgc2VlbXMgcHJvbWlzaW5nIGZvciBpbmR1c3RyaWFsIGFwcGxpY2F0aW9ucy48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDgzOS8zMDgzOS5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjc2PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5IWUJSSUQgUEFSQU1FVEVSLUxFU1MgRVZPTFVUSU9OQVJZIEFMR09SSVRITSBJTiBQUk9EVUNUSU9OIFBMQU5OSU5HPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+VmlkYSBWdWthxaFpbm92acSNLCBQZXRlciBLb3JvxaFlYyBhbmQgR3JlZ29yIFBhcGE8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPkluIHRoZSByZWFsLXdvcmxkIHByb2R1Y3Rpb24gcGxhbm5pbmcgcHJvYmxlbXMgdGhlcmUgYXJlIG1hbnkgY29uc3RyYWludHMgdGhhdCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQuIFVzdWFsbHksIHRoZXNlIGNvbnN0cmFpbnRzIGFuZCBpbnRlcmRlcGVuZGVudCBhbmQgdGhlIG9wdGltaXphdGlvbiBhbGdvcml0aG1zIGhhcyB0byBlZmZpY2llbnRseSBzb2x2ZSB0aGF0LiBUaGlzIHBhcGVyIHByZXNlbnRzIHRoZSBoeWJyaWQgcGFyYW1ldGVyLWxlc3MgZXZvbHV0aW9uYXJ5IGFsZ29yaXRobSB1c2VkIGZvciBjb25zdHJ1Y3Rpb24gb2YgYW4gb3B0aW1hbCBwcm9kdWN0aW9uIHBsYW4uIFRoZSBhbGdvcml0aG0gaXMgYmFzZWQgb24gZ2VuZXRpYyBhbGdvcml0aG0sIGJ1dCBpcyBtb2RpZmllZCB0byB3b3JrIHdpdGhvdXQgdGhlIHBhcmFtZXRlciBzZXR0aW5nLiBBbGwgYWxnb3JpdGhtIGNvbnRyb2wgcGFyYW1ldGVycyBhcmUgYXV0b21hdGljYWxseSBkZXRlcm1pbmVkIGR1cmluZyB0aGUgb3B0aW1pemF0aW9uLiBUaGUgYWxnb3JpdGhtIHdhcyBhYmxlIHRvIHNvbHZlIHRoZSBjb25zdHJhaW50cyBhbmQgdG8gbWFrZSBhbiBvcHRpbWFsIHByb2R1Y3Rpb24gcGxhbi4gQWRkaXRpb25hbGx5LCB3ZSBldmFsdWF0ZWQgdGhlIGluZmx1ZW5jZSBvZiBkaWZmZXJlbnQgcmF0aW9zIG9mIG9yZGVycyB3aXRoIGZpeGVkIGRlYWRsaW5lcyBvbiB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIGFsZ29yaXRobS4gVGhlIHVzZWQgYWxnb3JpdGhtIGNhbiBzdWNjZXNzZnVsbHkgc29sdmUgYWxzbyB0aGVzZSBhZGRpdGlvbmFsIGNvbnN0cmFpbnRzLjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwODUwLzMwODUwLnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+Nzk8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPlRXTyBBTEdPUklUSE1TIE9GIFRIRSBFWFRFTkRFRCBQU08gRkFNSUxZPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+SnVhbiBMdWlzIEZlcm4mIzIyNTtuZGV6LU1hcnQmIzIzNztuZXogYW5kIEVzcGVyYW56YSBHYXJjaWEtR29uemFsbzwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+SW4gdGhpcyBwYXBlciB3ZSBwcmVzZW50IHR3byBub3ZlbCBhbGdvcml0aG1zIGJlbG9uZ2luZyB0byB0aGUgZXh0ZW5kZWQgZmFtaWx5IG9mIFBTTzogdGhlIFBQLUdQU08gYW5kIHRoZSBSUi1HUFNPLiBUaGVzZSBhbGdvcml0aG1zIGNvcnJlc3BvbmQgcmVzcGVjdGl2ZWx5IHRvIHByb2dyZXNzaXZlIGFuZCByZWdyZXNzaXZlIGRpc2NyZXRpemF0aW9ucyBpbiBhY2NlbGVyYXRpb24gYW5kIHZlbG9jaXR5LiBQUC1HUFNPIGhhcyB0aGUgc2FtZSB2ZWxvY2l0eSB1cGRhdGUgdGhhbiBHUFNPLCBidXQgdGhlIHZlbG9jaXRpZXMgdXNlZCB0byB1cGRhdGUgdGhlIHRyYWplY3RvcmllcyBhcmUgZGVsYXllZCBvbmUgaXRlcmF0aW9uLCB0aHVzLCBQUC1HUFNPIGFjdHMgYXMgYSBKYWNvYmkgc3lzdGVtIHVwZGF0aW5nIHBvc2l0aW9ucyBhbmQgdmVsb2NpdGllcyBhdCB0aGUgc2FtZSB0aW1lLiBSUi1HUFNPIGlzIHNpbWlsYXIgdG8gYSBHUFNPIHdpdGggc3RvY2hhc3RpYyBjb25zdHJpY3Rpb24gZmFjdG9yLiBCb3RoIHZlcnNpb25zIGhhdmUgYSB2ZXJ5IGRpZmZlcmVudCBiZWhhdmlvciBmcm9tIEdQU08gYW5kIHRoZSBvdGhlciBmYW1pbHkgbWVtYmVycyBpbnRyb2R1Y2VkIGluIHRoZSBwYXN0OiBDQy1HUFNPIGFuZCBDUC1HUFNPLiBUaGUgbnVtZXJpY2FsIGNvbXBhcmlzb24gb2YgYWxsIHRoZSBmYW1pbHkgbWVtYmVycyBoYXMgc2hvd24gdGhhdCBSUi1HUFNPIGhhcyB0aGUgZ3JlYXRlc3QgY29udmVyZ2VuY2UgcmF0ZSBhbmQgaXRzIGdvb2QgcGFyYW1ldGVyIHNldHMgY2FuIGJlIGNhbGN1bGF0ZWQgYW5hbHl0aWNhbGx5IHNpbmNlIHRoZXkgYXJlIGFsb25nIGEgc3RyYWlnaHQgbGluZSBsb2NhdGVkIGluIHRoZSBmaXJzdCBvcmRlciBzdGFiaWxpdHkgcmVnaW9uLiBDb252ZXJzZWx5IFBQLUdQU08gaXMgYSBtb3JlIGV4cGxvcmF0aXZlIHZlcnNpb24uPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA4NTcvMzA4NTcucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij44MTwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+UkVBTC1USU1FIFRSQUpFQ1RPUlkgTU9ESUZJQ0FUSU9OIEJBU0VEIE9OIEImIzIwMTtaSUVSIFNIQVBFIERFRk9STUFUSU9OIDwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkwuIEhpbGFyaW8sIE4uIE1vbnQmIzIzMztzLCBNLiBDLiBNb3JhIGFuZCBBLiBGYWxjJiMyNDM7PC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5UaGlzIHBhcGVyIHByZXNlbnRzIGEgbmV3IHRlY2huaXF1ZSBmb3IgZmxleGlibGUgcGF0aCBwbGFubmluZyBiYXNlZCBvbiB0aGUgZGVmb3JtYXRpb24gb2YgYSBCJiMyMzM7emllciBjdXJ2ZSB0aHJvdWdoIGEgZmllbGQgb2YgdmVjdG9ycy4gVGhpcyBuZXcgdGVjaG5pcXVlIGlzIGNhbGxlZCBCJiMyMzM7emllciBTaGFwZSBEZWZvcm1hdGlvbiAoQlNEKS4gVGhpcyBkZWZvcm1hdGlvbiBpcyBjb21wdXRlZCB3aXRoIGEgY29uc3RyYWluZWQgb3B0aW1pemF0aW9uIG1ldGhvZCAoTGFncmFuZ2UgTXVsdGlwbGllcnMgVGhlb3JlbSkuIFRoZSBtYWluIGFkdmFudGFnZSBvZiB0aGlzIG1ldGhvZCBpcyBob3cgdGhlIHNvbHV0aW9uIGlzIG9idGFpbmVkLiBBIGxpbmVhciBzeXN0ZW0gaXMgc29sdmVkIHRvIGFjaGlldmUgdGhlIHJlc3VsdC4gQXMgYSBjb25zZXF1ZW5jZSwgdGhlIGRlZm9ybWVkIGN1cnZlIGlzIGNvbXB1dGVkIGluIGEgZmV3IG1pbGxpc2Vjb25kcyB3aGVyZSB0aGUgbGluZWFyIHN5c3RlbSBjYW4gYmUgc29sdmVkIG9mZmxpbmUgaWYgdGhlIEImIzIzMzt6aWVyIGN1cnZlIG9yZGVyIGlzIG1haW50YWluZWQgY29uc3RhbnQgZHVyaW5nIHRoZSBtb3ZlbWVudCBvZiB0aGUgcm9ib3QuIFRoaXMgbWV0aG9kIGFsbG93cyB0aGUgdXNlIG9mIHRoZXNlIHRyYWplY3RvcmllcyBpbiBkeW5hbWljIGVudmlyb25tZW50cyB3aGVyZSB0aGUgY29tcHV0YXRpb25hbCBjb3N0IGlzIGNyaXRpY2FsLiBUaGlzIHRlY2huaXF1ZSBjYW4gYmUgY29tYmluZWQgd2l0aCBhbnkgY29sbGlzaW9uIGF2b2lkYW5jZSBhbGdvcml0aG0gdGhhdCBwcm9kdWNlcyBhIGZpZWxkIG9mIHZlY3RvcnMuIEluIHBhcnRpY3VsYXIsIGl0IGlzIGFwcHJvcHJpYXRlIGZvciBhcnRpZmljaWFsIHBvdGVudGlhbCBmaWVsZCBtZXRob2RzLiBBdCB0aGUgZW5kIG9mIHRoZSBwYXBlciwgdGhlIHByZXNlbnRlZCBtZXRob2RvbG9neSBpcyBjb21iaW5lZCB3aXRoIGFuIGFydGlmaWNpYWwgcG90ZW50aWFsIGZpZWxkcyBhbGdvcml0aG0gcmVjZW50bHkgcHJvcG9zZWQsIHRoZSBQb3RlbnRpYWwgRmllbGQgUHJvamVjdGlvbiBtZXRob2QgKFBGUCkuIFRoaXMgbWV0aG9kIGlzIGJhc2VkIG9uIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgY2xhc3NpY2FsIFBvdGVudGlhbCBGaWVsZHMgbWV0aG9kIGFuZCB0aGUgbXVsdGktcmF0ZSBLYWxtYW4gZmlsdGVyIGVzdGltYXRpb24gYW5kIHRha2VzIGludG8gYWNjb3VudCB0aGUgdW5jZXJ0YWludGllcyBvbiBsb2NhdGlvbnMsIHRoZSBmdXR1cmUgdHJhamVjdG9yeSBvZiB0aGUgcm9ib3QgYW5kIHRoZSBvYnN0YWNsZXMgYW5kIHRoZSBtdWx0aS1yYXRlIGluZm9ybWF0aW9uIHN1cHBsaWVkIGJ5IHNlbnNvcnMuIEFzIHNob3duIGluIHRoZSBzaW11bGF0aW9uIHJlc3VsdHMsIGZsZXhpYmxlIHRyYWplY3RvcmllcyBmb3IgY29sbGlzaW9uIGF2b2lkYW5jZSBhcmUgZ2VuZXJhdGVkIHdpdGggc21vb3RoIGN1cnZlcy48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDg2MC8zMDg2MC5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjgzPC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5FVkFDVUFUSU9OIFNJTVVMQVRJT04gV0lUSCBMSU1JVEVEIENBUEFDSVRZIFNJTktTIC0gQW4gRXZvbHV0aW9uYXJ5IEFwcHJvYWNoIHRvIFNvbHZlIHRoZSBTaGVsdGVyIEFsbG9jYXRpb24gYW5kIENhcGFjaXR5IEFzc2lnbm1lbnQgUHJvYmxlbSBpbiBhIE11bHRpLWFnZW50IEV2YWN1YXRpb24gU2ltdWxhdGlvbjwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkd1bm5hciBGbCYjMjQ2O3R0ZXImIzI0NjtkIGFuZCBHcmVnb3IgTCYjMjI4O21tZWw8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPldlIGhldXJpc3RpY2FsbHkgc29sdmUgYW4gZXZhY3VhdGlvbiBwcm9ibGVtIHdpdGggbGltaXRlZCBjYXBhY2l0eSBzaGVsdGVycy4gQW4gZXZvbHV0aW9uYXJ5IGxlYXJuaW5nIGFsZ29yaXRobSBpcyBkZXZlbG9wZWQgZm9yIHRoZSBjb21iaW5lZCByb3V0ZS0gYW5kIHNoZWx0ZXItYXNzaWdubWVudCBwcm9ibGVtLiBJdCBpcyBjb21wbGVtZW50ZWQgd2l0aCBhIGhldXJpc3RpYyBtZXRob2QgZm9yIHRoZSBmYWlyIG1pbmltaXphdGlvbiBvZiBzaGVsdGVyIGNhcGFjaXRpZXMuIERpZmZlcmVudCBiZWhhdmlvcmFsIGFzc3VtcHRpb25zIOKAnGZhaXLigJ0gdnMuIOKAnGdsb2JhbGx5IG9wdGltYWzigJ0pIGFyZSBpbnZlc3RpZ2F0ZWQuIFRoZSBwcm9wb3NlZCBhcHByb2FjaGVzIGFyZSBkaXNjdXNzZWQgaW4gdGhlIGNvbnRleHQgb2YgYSByZWFsLXdvcmxkIHRzdW5hbWkgZXZhY3VhdGlvbiBwcm9ibGVtLjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwODYzLzMwODYzLnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+ODg8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPlBVUkUgQ08tRVZPTFVUSU9OIEZPUiBTSEFQRSBORVNUSU5HPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+SmVmZnJleSBIb3JuPC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5XZSB0ZXN0IHRoZSBlZmZlY3RpdmVuZXNzIG9mIGFuIGV2b2x1dGlvbmFyeSBhbGdvcml0aG0gdGhhdCByZWxpZXMgY29tcGxldGVseSBvbiBzcGVjaWVzIHNlbGVjdGlvbiBmb3IgZXZvbHV0aW9uIGFuZCBvbiBpbnRlcmFjdGlvbnMgYW1vbmcgc3BlY2llcyB0byBkZXRlcm1pbmUgZml0bmVzcy4gIFVuZGVyIFJlc291cmNlLWRlZmluZWQgRml0bmVzcyBTaGFyaW5nIChSRlMpLCBhbGwgaW5kaXZpZHVhbHMgaGF2ZSB0aGUgc2FtZSBvYmplY3RpdmUgZml0bmVzcywgYnV0IHRoZXkgYWN0IHRvIHJlZHVjZSB0aGVpciBzaGFyZWQgZml0bmVzcyB0aHJvdWdoIGNvbXBldGl0aW9uIGZvciByZXNvdXJjZXMuICBJbiBwcmV2aW91cyBzdHVkaWVzLCBSRlMgaGFzIGJlZW4gdXNlZCB0byBldm9sdmUgcG9wdWxhdGlvbnMgb2YgbXV0dWFsbHkgbm9uLWNvbXBldGluZyAoaS5lLiwgbm9uLW92ZXJsYXBwaW5nKSBzaGFwZXMgb24gc2hhcGUgbmVzdGluZyBwcm9ibGVtcy4gIEluIHRoaXMgcGFwZXIgd2UgdGVzdCB0aGUgZWZmZWN0aXZlbmVzcyBvZiBhIG1vZGlmaWVkIHZlcnNpb24gb2YgUkZTLCB3aGljaCB3ZSBjYWxsIFBDU04sIGFnYWluc3QgdGhyZWUgY29tbWVyY2lhbCBzb2Z0d2FyZSBwYWNrYWdlcyBmb3Igc2hhcGUgbmVzdGluZy4gIFBDU04gdXNlcyBzcGVjaWVzIHByb3BvcnRpb25zIHRvIHJlcHJlc2VudCBhIHBvcHVsYXRpb24sIHRoZXJlYnkgc2ltdWxhdGluZyBhbiBpbmZpbml0ZWx5IGxhcmdlIHBvcHVsYXRpb24uICAgV2l0aCBubyBkaXNjb3Zlcnkgb3BlcmF0b3JzLCBzdWNoIGFzIG11dGF0aW9uIG9yIHJlY29tYmluYXRpb24sIGV2b2x1dGlvbiBjb25zaXN0cyBvZiBzZWxlY3Rpb24gb25seSwgd2l0aCBhbGwgc3BlY2llcyBwcmVzZW50IGluIHRoZSBpbml0aWFsIHBvcHVsYXRpb24uICBXZSBzaG93IHRoYXQgb24gc29tZSBzaGFwZSBuZXN0aW5nIHByb2JsZW1zIHRoaXMgYXBwcm9hY2ggY2FuIG91dHBlcmZvcm0gc29tZSBjb21tZXJjaWFsIHBhY2thZ2VzLiAgSW4gcGFydGljdWxhciwgUENTTiBuZXN0cyBtb3JlIGNpcmNsZXMgb24gYSBmaXhlZCwgcG9seWdvbmFsIHN1YnN0cmF0ZSB0aGFuIGRvIG1vc3Qgb2YgdGhlIGNvbW1lcmNpYWwgcGFja2FnZXMuICBUaGlzIG1pZ2h0IGJlIGNvbnNpZGVyZWQgYSBzdXJwcmlzaW5nIHJlc3VsdCwgc2luY2UgdGhlIGFsZ29yaXRobSBpcyByYWRpY2FsbHkgZGlmZmVyZW50IGZyb20gYW55IHNoYXBlIG5lc3RpbmcgYWxnb3JpdGhtcyBkZXBsb3llZCB0byBkYXRlLiAgIFdoaWxlIGNvbnZlbnRpb25hbCBtZXRob2RzIHBsYWNlIG9uZSBzaGFwZSBhdCBhIHRpbWUsIHRoZSBjby1ldm9sdXRpb24gYXBwcm9hY2ggYXR0ZW1wdHMgdG8gcGxhY2UgYWxsIHNoYXBlcyBzaW11bHRhbmVvdXNseS48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDg5NC8zMDg5NC5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjkwPC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5BTiBNT0VBLUJBU0VEIE1FVEhPRCBUTyBUVU5FIEVBIFBBUkFNRVRFUlMgT04gTVVMVElQTEUgT0JKRUNUSVZFIEZVTkNUSU9OUzwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPlMuIEsuIFNtaXQsIEEuIEUuIEVpYmVuIGFuZCBaLiBTemwmIzIyNTt2aWs8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPkluIHRoaXMgcGFwZXIsIHdlIGRlbW9uc3RyYXRlIHRoZSBiZW5lZml0cyBvZiB1c2luZyBhIG11bHRpLW9iamVjdGl2ZSBhcHByb2FjaCB3aGVuIHR1bmluZyB0aGUgcGFyYW1ldGVycyBvZiBhbiBFdm9sdXRpb25hcnkgQWxnb3JpdGhtLiBUbyBvdmVyY29tZSB0aGUgc3BlY2lmaWMgY2hhbGxlbmdlcyB0aGF0IGFyaXNlIHdoZW4gdXNpbmcgYSBtZXRhLWFsZ29yaXRobSBmb3IgcGFyYW1ldGVyIHR1bmluZyBvbiBtdWx0aXBsZSBmdW5jdGlvbnMsIHdlIGludHJvZHVjZSBhIG5ldyBhbGdvcml0aG0gY2FsbGVkIHRoZSBNdWx0aS1GdW5jdGlvbiBFdm9sdXRpb25hcnkgVHVuaW5nIEFsZ29yaXRobSAoTS1GRVRBKSB0aGF0IGlzIGFibGUgdG8gYXBwcm94aW1hdGUgdGhlIHBhcmFtZXRlciBQYXJldG8gZnJvbnQgZWZmZWN0aXZlbHkuIFRoZSByZXN1bHRzIG9mIHRoZSBleHBlcmltZW50cyBpbGx1c3RyYXRlIGhvdyB0aGUgYXBwcm94aW1hdGVkIFBhcmFtZXRlciBQYXJldG8gZnJvbnQgY2FuIGJlIHVzZWQgdG8gZ2FpbiBpbnNpZ2h0cywgaWRlbnRpZnkg4oCYZ2VuZXJhbGlzdHPigJksIGFuZCBzdHVkeSB0aGUgcm9idXN0bmVzcyBvZiB0aGUgYWxnb3JpdGhtIHRvIGJlIHR1bmVkLjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMxMDYyLzMxMDYyLnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+OTI8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPlNQQVJLTElORSBISVNUT0dSQU1TIEZPUiBDT01QQVJJTkcgRVZPTFVUSU9OQVJZIE9QVElNSVpBVElPTiBNRVRIT0RTPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+VmlsbGUgVGlycm9uZW4gYW5kIE1hdHRoaWV1IFdlYmVyPC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5Db21wYXJpbmcgZXZvbHV0aW9uYXJ5IG9wdGltaXphdGlvbiBtZXRob2RzIGlzIGEgZGlmZmljdWx0IHRhc2suIEFzIG1vcmUgYW5kIG1vcmUgb2YgYXJ0aWNsZXMgYXJlIHB1Ymxpc2hlZCBpbiB0aGlzIGZpZWxkLCB0aGUgcmVhZGVycyBhbmQgcmV2aWV3ZXJzIGFyZSBzd2FtcGVkIHdpdGggaW5mb3JtYXRpb24gdGhhdCBpcyBoYXJkIHRvIGRlY2lwaGVyLiBXZSBwcm9wb3NlIHRoZSB1c2Ugb2Ygc3BhcmtsaW5lIGhpc3RvZ3JhbXMgdGhhdCBhbGxvdyBjb21wYWN0IHJlcHJlc2VudGF0aW9uIG9mIHRlc3QgZGF0YSBpbiBhIHdheSB3aGljaCBpcyBleHRyZW1lbHkgZmFzdCB0byByZWFkIGFuZCBtb3JlIGluZm9ybWF0aXZlIHRoYW4gdXN1YWxseSBnaXZlbiBtZXRyaWNzLjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMxMTA0LzMxMTA0LnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+OTc8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPlBBUklTSUFOIEFQUFJPQUNIIC0gUmVkdWNpbmcgQ29tcHV0YXRpb25hbCBFZmZvcnQgdG8gSW1wcm92ZSBTTVQgUGVyZm9ybWFuY2UgYnkgc2V0dGluZyBSZXNpemFibGUgQ2FjaGVzPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+Sm9zZWZhIEQmIzIzNztheiwgRnJhbmNpc2NvIEZlcm4mIzIyNTtuZGV6IGRlIFZlZ2EsIEouIElnbmFjaW8gSGlkYWxnbyBhbmQgT3NjYXIgR2FybmljYTwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+RXZvbHV0aW9uYXkgQWxnb3JpdGhtIGFyZSB0ZWNobmlxdWVzIHdpZGVseSB1c2VkIGluIHRoZSByZXNvbHV0aW9uIG9mIGNvbXBsZXggcHJvYmxlbXMuIE9uIHRoZSBvdGhlciBoYW5kLCBTaW11bHRhbmVvdXMgTXVsdGl0aHJlYWRpbmcgaW1wcm92ZXMgdGhlIHRocm91Z2hwdXQgb2YgdGhlIHByb2Nlc3NvciBjb3JlIHRha2luZyBhZHZhbnRhZ2Ugb2YgSW5zdHJ1Y3Rpb24gTGV2ZWwgUGFyYWxsZWxpc20gYW5kIFRocmVhZCBMZXZlbCBQYXJhbGxlbGlzbS4gSW4gdGhpcyBlbnZpcm9ubWVudCBhZGFwdGF0aW9uIHRoZSBjYWNoZSBjb25maWd1cmF0aW9uLCBhdCBydW50aW1lIGFjY29yZGluZyB0byB3b3JrbG9hZHMgc2V0dGluZ3Mgd2lsbCBiZSBpbXByb3ZlZCB0aGUgcHJvY2Vzc29yIHBlcmZvcm1hbmNlLiBUaGlzIGltcHJvdmVtZW50IGlzIGFjaGlldmVkIGJ5IHVzaW5nIHJlc2l6YWJsZSBjYWNoZXMuIEluIGEgcHJldmlvdXMgd29yaywgd2UgcHJvcG9zZWQgYSBHZW5ldGljIEFsZ29yaXRobSB0byBmaW5kIHRoZSBiZXR0ZXIgY2FjaGUgY29uZmlndXJhdGlvbnMgYWNjb3JkaW5nIHRvIHRoZSBuZWVkcyBhbmQgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSB3b3JrbG9hZHMuIEhvd2V2ZXIgdGhlIGNvbXB1dGF0aW9uYWwgY29zdCBuZWVkZWQgZm9yIHRoZSBldmFsdWF0aW9uIHByb2Nlc3MgaXMgdmVyeSBoaWdoLiBJbiB0aGlzIHBhcGVyIHdlIHByb3Bvc2UgdGhlIHVzZSBvZiB0aGUgUGFyaXNpYW4gRXZvbHV0aW9uIEFwcHJvYWNoIHRvIGltcHJvdmUgZHluYW1pY2FsbHkgcmVjb25maWd1cmFibGUgY2FjaGUgZGVzaWducywgYW5kIHJlZHVjZSB0aGUgY29tcHV0YXRpb25hbCBjb3N0IGFzc29jaWF0ZWQuIFdlIHN0dWR5IHRoZSBiZWhhdmlvciBvZiBhIHNldCBvZiBiZW5jaG1hcmtzLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZWlyIG5lZWRzIG92ZXIgY2FjaGUgbWVtb3J5IGhpZXJhcmNoeSBpbiBlYWNoIHBoYXNlIG9mIGV4ZWN1dGlvbiwgaW4gb3JkZXIgdG8gYWRhcHQgdGhlIGNhY2hlIGNvbmZpZ3VyYXRpb24gYW5kIHRvIGluY3JlYXNlIHRoZSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zIHBlciBjeWNsZS4gRXhwZXJpbWVudGFsIHJlc3VsdHMgc2hvdyBhIGxhcmdlIHNhdmluZyBpbiBjb21wdXRpbmcgdGltZSBhbmQgc29tZSBpbXByb3ZlbWVudCBvbiB0aGUgaW5zdHJ1Y3Rpb25zIHBlciBjeWNsZSBhY2hpZXZlZCBpbiBwcmV2aW91cyBhcHByb2FjaGVzLgo8L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMTEzNy8zMTEzNy5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjk4PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5TSU1QTEUgR0VORVRJQyBBTEdPUklUSE0gV0lUSCBhLVNFTEVDVElPTgogLSBJbnRyaW5zaWMgU3lzdGVtIE1vZGVsLCBGaXhlZCBQb2ludHMgYW5kIHRoZSBGaXhlZCBQb2ludCBHcmFwaDwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkFuZHImIzIzMzsgTmV1YmF1ZXI8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPkdlbmV0aWMgYWxnb3JpdGhtcyAoR0EpIGFyZSBpbnN0YW5jZXMgb2YgcmFuZG9tIGhldXJpc3RpYyBzZWFyY2ggKFJIUykgd2hpY2ggbWltaWMgYmlvbG9naWNhbCBldm9sdXRpb24gYW5kIG1vbGVjdWxhciBnZW5ldGljcyBpbiBzaW1wbGlmaWVkIGZvcm0uIFRoZXNlIHJhbmRvbSBzZWFyY2ggYWxnb3JpdGhtcyBjYW4gYmUgdGhlb3JldGljYWxseSBkZXNjcmliZWQgd2l0aCB0aGUgaGVscCBvZiBhIGRldGVybWluaXN0aWMgZHluYW1pY2FsIHN5c3RlbSBtb2RlbCBieSB3aGljaCB0aGUgc3RvY2hhc3RpYyB0cmFqZWN0b3J5IG9mIGEgcG9wdWxhdGlvbiBjYW4gYmUgY2hhcmFjdGVyaXplZCB1c2luZyBhIGRldGVybWluaXN0aWMgaGV1cmlzdGljIGZ1bmN0aW9uIGFuZCBpdHMgZml4ZWQgcG9pbnRzLiBGb3IgcHJhY3RpY2FsIHByb2JsZW0gc2l6ZXMgdGhlIGRldGVybWluYXRpb24gb2YgdGhlIGZpeGVkIHBvaW50cyBpcyB1bmZlYXNpYmxlIGV2ZW4gZm9yIHRoZSBzaW1wbGUgZ2VuZXRpYyBhbGdvcml0aG0gKFNHQSkuIFRoZSByZWNlbnRseSBpbnRyb2R1Y2VkIHNpbXBsZSBnZW5ldGljIGFsZ29yaXRobSB3aXRoIGEtc2VsZWN0aW9uIGFsbG93cyB0aGUgYW5hbHl0aWNhbCBjYWxjdWxhdGlvbiBvZiB0aGUgdW5pcXVlIGZpeGVkIHBvaW50cyBvZiB0aGUgZHluYW1pY2FsIHN5c3RlbSBtb2RlbC4gSW4gdGhpcyBwYXBlciwgYW4gb3ZlcnZpZXcgb2YgdGhlIHRoZW9yZXRpY2FsIHJlc3VsdHMgZm9yIHRoZSBzaW1wbGUgZ2VuZXRpYyBhbGdvcml0aG0gd2l0aCBhLXNlbGVjdGlvbiBhbmQgaXRzIGNvcnJlc3BvbmRpbmcgaW50cmluc2ljIHN5c3RlbSBtb2RlbCBpcyBnaXZlbi4gRnVydGhlciwgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIGZpeGVkIHBvaW50IGdyYXBoIGlzIGlsbHVzdHJhdGVkIHdoaWNoIGRlc2NyaWJlcyB0aGUgYXN5bXB0b3RpYyBiZWhhdmlvciBvZiB0aGUgc2ltcGxlIGdlbmV0aWMgYWxnb3JpdGhtLiBJbiBhZGRpdGlvbiB0byB0aGUgdGhlb3JldGljYWwgYW5hbHlzaXMgZXhwZXJpbWVudGFsIHJlc3VsdHMgZm9yIHRoZSBzaW1wbGUgZ2VuZXRpYyBhbGdvcml0aG0gd2l0aCBhLXNlbGVjdGlvbiwgdW5pZm9ybSBjcm9zc292ZXIgYW5kIGJpdHdpc2UgbXV0YXRpb24gYXJlIHByZXNlbnRlZC48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMTEzOC8zMTEzOC5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjEwMDwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+T04gVEhFIERFU0lHTiBPRiBQT1BVTEFUSU9OQUwgQ0xVU1RFUklORzwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkxlb25hcmRvIFJhbW9zIEVtbWVuZG9yZmVyPC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5UaGUgYXBwbGljYXRpb24gb2YgY2x1c3RlcmluZyBhbGdvcml0aG1zIGZvciBwYXJ0aXRpb25pbmcgdGhlIHBvcHVsYXRpb24gaW4gZXZvbHV0aW9uYXJ5IGNvbXB1dGF0aW9uIGlzIGRpc2N1c3NlZC4gU3BlY2lmaWMgYXNwZWN0cyB3aGljaCBjaGFyYWN0ZXJpemUgdGhpcyB0YXNrIGxlYWQgdG8gb3Bwb3J0dW5pdGllcyB3aGljaCBjYW4gYmUgZXhwbG9yZWQgYnkgdGhlIGNsdXN0ZXJpbmcgYWxnb3JpdGhtLiBBIHN1cGVydmlzZWQgY2x1c3RlcmluZyBhbGdvcml0aG0gaXMgZGVzY3JpYmVkLCB3aGljaCBpbGx1c3RyYXRlcyB0aGUgZXhwbG9yYXRpb24gb2YgdGhvc2Ugb3Bwb3J0dW5pdGllcy48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMTE0Mi8zMTE0Mi5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjQ8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPkEgR0lCQlMgRElTVFJJQlVUSU9OIFRIQVQgTEVBUk5TIEZST00gR0EgRFlOQU1JQ1M8L2gzPjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QXV0aG9yczo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGg0IGNsYXNzPSJhdXRob3JzIj5NYW5hYnUgS2l0YWdhdGEgYW5kIEp1bi1pY2hpIElub3VlPC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5BIGdlbmVyYWwgcHJvY2VkdXJlIG9mIGF2ZXJhZ2UtY2FzZSBwZXJmb3JtYW5jZSBldmFsdWF0aW9uIGZvciBwb3B1bGF0aW9uIGR5bmFtaWNzIHN1Y2ggYXMgZ2VuZXRpYyBhbGdvcml0aG1zIChHQXMpIGlzIHByb3Bvc2VkIGFuZCBpdHMgdmFsaWRpdHkgaXMgbnVtZXJpY2FsbHkgZXhhbWluZWQuIFdlIGludHJvZHVjZSBhIGxlYXJuaW5nIGFsZ29yaXRobSBvZiBHaWJicyBkaXN0cmlidXRpb25zIGZyb20gdHJhaW5pbmcgc2V0cyB3aGljaCBhcmUgZ2VuZSBjb25maWd1cmF0aW9ucyAoc3RyaW5ncykgZ2VuZXJhdGVkIGJ5IEdBIGluIG9yZGVyIHRvIGZpZ3VyZSBvdXQgdGhlIHN0YXRpc3RpY2FsIHByb3BlcnRpZXMgb2YgR0EgZnJvbSB0aGUgdmlldyBwb2ludCBvZiB0aGVybW9keW5hbWljcy4gVGhlIGxlYXJuaW5nIGFsZ29yaXRobSBpcyBjb25zdHJ1Y3RlZCBieSBtZWFucyBvZiBtaW5pbWl6YXRpb24gb2YgdGhlIEt1bGxiYWNrLUxlaWJsZXIgaW5mb3JtYXRpb24gYmV0d2VlbiBhIHBhcmFtZXRyaWMgR2liYnMgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1waXJpY2FsIGRpc3RyaWJ1dGlvbiBvZiBnZW5lIGNvbmZpZ3VyYXRpb25zLiBUaGUgZm9ybXVsYXRpb24gaXMgYXBwbGllZCB0byBhIHNvbHZhYmxlIHByb2JhYmlsaXN0aWMgbW9kZWwgaGF2aW5nIG11bHRpLXZhbGxleSBlbmVyZ3kgbGFuZHNjYXBlcywgbmFtZWx5LCB0aGUgc3BpbiBnbGFzcyBjaGFpbi4gQnkgdXNpbmcgY29tcHV0ZXIgc2ltdWxhdGlvbnMsIHdlIGRpc2N1c3MgdGhlIGFzeW1wdG90aWMgYmVoYXZpb3VyIG9mIHRoZSBlZmZlY3RpdmUgdGVtcGVyYXR1cmUgc2NoZWR1bGluZyBhbmQgdGhlIHJlc2lkdWFsIGVuZXJneSBpbmR1Y2VkIGJ5IHRoZSBHQSBkeW5hbWljcy48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDQ3MS8zMDQ3MS5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjEzPC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5BTiBJTlRFR1JBVEVEIEFSQ0hJVEVDVFVSRSBGT1IgSU5GT01PQklMSVRZIFNFUlZJQ0VTIC0gQWR2YW50YWdlcyBvZiBHZW5ldGljIEFsZ29yaXRobXMgaW4gUmVhbC10aW1lIFJvdXRlIFBsYW5uaW5nPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+Qy4gRGUgQ2FzdHJvLCBHLiBMZW9uYXJkaSwgQi4gTS4gTWFzaW5pIGFuZCBQLiBUb3BwYW48L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPkluIHRoZSBmaWVsZCBvZiBJbnRlbGxpZ2VudCBUcmFuc3BvcnRhdGlvbiBTeXN0ZW1zLCBhIGtleSByb2xlIGlzIHBsYXllZCBieSBlZmZpY2llbnQgcm91dGUgcGxhbm5pbmcgc2VydmljZXMuIFN1Y2ggc3lzdGVtcyBoYXZlIGJlZW4gZXZvbHZpbmcgcmFwaWRseSwgYnV0IHRoZXkgc3RpbGwgaGF2ZSBzb21lIHJlc3RyaWN0aW5nIGRyYXdiYWNrcywgc3VjaCBhcyB0aGUgbGFjayBvZiBhIGZ1bGwgc3VwcG9ydCBvZiByZWFsLXRpbWUgdHJhZmZpYyBtb25pdG9yaW5nIGFuZCB0aGUgY29uc2VxdWVudCByZWFsLXRpbWUgdXBkYXRlIG9mIHRoZSBiZXN0IHJvdXRlIHN1Z2dlc3RlZC4gSW4gdGhpcyBwYXBlciwgYW4gYXJjaGl0ZWN0dXJlIGlzIHByb3Bvc2VkIGZvciB0aGUgbWFuYWdlbWVudCBvZiBkeW5hbWljIHBhdGggcGxhbm5pbmcgYW5kIGxpbWl0YXRpb25zIG9mIHRyYWRpdGlvbmFsIHNlYXJjaCBhbGdvcml0aG1zIGluIHRoZXNlIGtpbmRzIG9mIGFwcGxpY2F0aW9ucyBkaXNjdXNzZWQuIEEgdmFyaWFudCBvZiB0aGUgcHJvcG9zZWQgYXBwcm9hY2ggaXMgY29uc2VxdWVudGx5IHByZXNlbnRlZCwgYmFzZWQgb24gdGhlIGpvaW50IHVzZSBvZiB2aXJ1cy1ldm9sdXRpb25hcnkgZ2VuZXRpYyBhbGdvcml0aG1zIGZvciByZWFsLXRpbWUgcm91dGUgcGxhbm5pbmcgYW5kIHRyYWZmaWMgZm9yZWNhc3RpbmcuPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA1NzgvMzA1NzgucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij4xNDwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+QU4gSU5OT1ZBVElWRSBHQSBPUFRJTUlaRUQgSU5WRVNUTUVOVCBTVFJBVEVHWSBCQVNFRCBPTiBBIE5FVyBURUNITklDQUwgSU5ESUNBVE9SIFVTSU5HIE1VTFRJUExFIE1BUzwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkFkcmlhbm8gU2ltb2VzLCBSdWkgTmV2ZXMgYW5kIE51bm8gSG9ydGE8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPlRoaXMgcGFwZXIgcHJvcG9zZXMgYSBuZXcgbWVkaXVtL2xvbmcgdGVybSBpbnZlc3RtZW50IHN0cmF0ZWd5IGZvciBzdG9jayBtYXJrZXRzIGJhc2VkIG9uIGEgY29tYmluYXRpb24gb2YgU2ltcGxlIE1vdmluZyBBdmVyYWdlcyBDcm9zc292ZXIgKFNNQUMpIGFuZCBNb3ZpbmcgQXZlcmFnZSBEZXJpdmF0ZSAoTUFEKS4gVGhpcyBzdHJhdGVneSBpcyBjb21wYXJlZCB3aXRoIHRoZSBCdXkgYW5kIEhvbGQsIHdpdGggdGhlIE1vdmluZyBBdmVyYWdlcyBDcm9zc292ZXIsIGFuZCB3aXRoIHRoZSBNb3ZpbmcgQXZlcmFnZSBEZXJpdmF0ZSBzdHJhdGVneS4gVGhlIGV4cGVyaW1lbnRzIHNob3cgdGhhdCB0aGUgY29tYmluYXRpb24gb2YgU01BQyBhbmQgTUFEIG91dHBlcmZvcm1zIHRoZSByZXN1bHRzIG9mIGVhY2ggc3RyYXRlZ3kgaW5kaXZpZHVhbGx5LiBUaGUgcHJlc2VudGVkIGFwcHJvYWNoIGhhcyBhbiBhdmVyYWdlIHJldHVybiBvZiBpbnZlc3RtZW50IG9mIDkuMCUsIGNvbXBhcmVkIHdpdGggdGhlIDIuNiUgcmV0dXJuIG9mIHRoZSBCdXkgYW5kIEhvbGQsIGZvciB0aGUgUyZhbXA7UDUwMCwgRlRTRTEwMCwgREFYMzAgYW5kIE5JS0tFSTIyNSwgYmV0d2VlbiAyMDA0IGFuZCAyMDA5LjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwNTgxLzMwNTgxLnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+MTU8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPlRIRSBDSEVNTklUWiBIWUJSSUQgRVZPTFVUSU9OQVJZIE9QVElNSVpBVElPTiBTWVNURU0KPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+VWxmIE5pZWwmIzIyODtuZGVyPC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5UaGlzIHBhcGVyIGludHJvZHVjZXMgdGhlIENoZW1uaXR6IEh5YnJpZCBFdm9sdXRpb25hcnkgT3B0aW1pemF0aW9uIFN5c3RlbSB0byB0aGUgc2NpZW50aWZpYyBjb21tdW5pdHkuIENIRU9QUyBpcyBhIG5vbi1zdGFuZGFyZCwgaGlnaC1wZXJmb3JtYW5jZSBnZW5ldGljIGFsZ29yaXRobSBmcmFtZXdvcmsgYWxsb3dpbmcgc2ltcGxlIGFzIHdlbGwgYXMgYWR2YW5jZWQgbW9kZXMgb2Ygb3BlcmF0aW9uLiBVbml2ZXJzYWwgZ2VuZXRpYyBhbGdvcml0aG1zIHdlbGwtc3VpdGVkIGZvciBzb2x2aW5nIGJvdGggc2luZ2xlLSBhbmQgbXVsdGktb2JqZWN0aXZlIG9wdGltaXphdGlvbiBwcm9ibGVtcyBhcmUgc3RpbGwgYSBtYXR0ZXIgb2Ygc2VyaW91cyByZXNlYXJjaC4gVGhlIE9tbmkgT3B0aW1pemVyIHdhcyBhIG1pbGVzdG9uZSBpbiB0aGF0IHJlc2VhcmNoIHRvcGljLCBidXQgbm93IGl0IGlzIGRyYW1hdGljYWxseSBvdXRwZXJmb3JtZWQgYnkgQ0hFT1BTIGluIHNpbmdsZS1vYmplY3RpdmUgb3B0aW1pemF0aW9uLiBUaGUgY29tcGFyaXNvbiBzaG91bGQgc29vbiBjb250aW51ZSwgYmVjYXVzZSBDSEVPUFMgd2lsbCBiZSBzdHJhaWdodGZvcndhcmRseSBlbmhhbmNlZCB0byBzb2x2ZSBtdWx0aS1vYmplY3RpdmUgcHJvYmxlbXMgYXMgd2VsbC48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDU5Mi8zMDU5Mi5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjMwPC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5UV08tVElFUkVEIFJFU09MVVRJT04gUkVBTC1USU1FIFBBVEggRVZBTFVBVElPTjwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkouIEMuIEYuIEFsbGFpcmUsIEouIE0uIFAuIExhbmdsb2lzLCBHLiBMYWJvbnQmIzIzMzsgYW5kIE0uIFRhcmJvdWNoaTwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+VW5tYW5uZWQgYWVyaWFsIHZlaGljbGVzIChVQVYpIGFyZSBzdWJqZWN0IHRvIHVuZm9yZXNlZW4gZXZlbnRzIGluIGhhcnNoIGVudmlyb25tZW50LiBFbWJlZGRlZCBhdXRvbm9tb3VzIHJlYWwtdGltZSBwYXRoIHJlLXBsYW5uaW5nIGlzIGEgcG9zc2libGUgc29sdXRpb24gdG8gdGhpcyBpc3N1ZS4gRXZvbHV0aW9uYXJ5IGFsZ29yaXRobXMgaGF2ZSBzaG93biB0byBiZSBhbiBleGNlbGxlbnQgbWVhbnMgdG8gb3B0aW1pc2UgdGhlIGdlbmVyYXRpb24gb2YgVUFWIHBhdGhzIGJ1dCB0aGVpciBzbG93IGl0ZXJhdGl2ZSBwcm9jZXNzIHByZXZlbnQgdGhlbSB0byBiZSB1c2VkIGZvciByZWFsLXRpbWUgY29tcHV0YXRpb24uIFBhcnQgb2YgdGhhdCBjaGFsbGVuZ2UgcmVzaWRlcyBpbiB0aGUgY29tcHV0YXRpb25hbCBkZW1hbmRpbmcgdGFzayBvZiBwYXRoIGZlYXNpYmlsaXR5IGV2YWx1YXRpb24sIHdoZXJlIGVhY2ggc2luZ2xlIHNlZ21lbnQgb2YgdGhlIGdlbmVyYXRlZCBwYXRoIG5lZWRzIHRvIGJlIGNlcnRpZmllZCDigJhjb2xsaXNpb24gZnJlZeKAmS4gU3RhdGUgb2YgdGhlIGFydCBhbGdvcml0aG1zIHJlcXVpcmUgY29tcHV0YXRpb25hbGx5IGRlbWFuZGluZyBwcmUtcHJvY2Vzc2luZyBvZiB0aGUgd29ybGQgcmVwcmVzZW50YXRpb24sIHdoaWNoIGlzIHRvbyB0aW1lLWNvbnN1bWluZyBmb3IgcmVhbC10aW1lIGNvbXB1dGF0aW9uLiBUYWtpbmcgYWR2YW50YWdlIG9mIGFkdmFuY2VtZW50cyBpbiB0aGUgRmllbGQgUHJvZ3JhbW1hYmxlIEdhdGUgQXJyYXkgKEZQR0EpIHRlY2hub2xvZ3ksIHRoaXMgd29yayBoYXMgZXZhbHVhdGVkIGEgbmV3IGZlYXNpYmlsaXR5IGV2YWx1YXRpb24gdGVjaG5pcXVlIHRoYXQgYW5hbHlzZXMgdGhlIHBhdGggZGlyZWN0bHkgZnJvbSB0aGUgcmF3IGRhdGEgb2YgdGhlIHdvcmxkIHJlcHJlc2VudGF0aW9uLCB1c2luZyB0d28gbGV2ZWxzIG9mIHJlc29sdXRpb246IGEgaGlnaCByZXNvbHV0aW9uIG1hcCB1c2VkIGNsb3NlIHRvIHRoZSBVQVYsIGFuZCBhIGxvdyByZXNvbHV0aW9uIG1hcCB1c2VkIGZhciBmcm9tIHRoZSBVQVYuIFRoaXMgdGVjaG5pcXVlIGhhcyBiZWVuIGltcGxlbWVudGVkIG9uIGFuIEZQR0EgYW5kIHRlc3RlZCBpbiBzaW11bGF0aW9uLiBUaW1pbmcgcmVzdWx0cyAobW9yZSB0aGFuIDUwMCBtYXAgY2VsbHMgZXZhbHVhdGVkIHdpdGhpbiA1IM68cykgZGVtb25zdHJhdGUgdGhhdCB0aGUgdHdvLXRpZXJlZCByZXNvbHV0aW9uIHRlY2huaXF1ZSBvcGVucyB1cCBhdmVudWVzIHRvIHJlYWwtdGltZSBVQVYgcGF0aCByZS1wbGFubmluZyB1c2luZyBldm9sdXRpb25hcnkgYWxnb3JpdGhtcy48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDcwOC8zMDcwOC5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjM0PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5PUFRJTUlaQVRJT04gT0YgQSBTVEVBTSBUVVJCSU5FIEdVSURFIFZBTkUgQlkgRU5EIFdBTEwgQ09OVE9VUklORyBVU0lORyBFVk9MVVRJT05BUlkgQUxHT1JJVEhNUzwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPk5pbHMgTW9zZXIgYW5kIEZyYW56IEpvb3M8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPlRoZSBzdWJqZWN0IG9mIHRoaXMgcGFwZXIgaXMgdGhlIG9wdGltaXphdGlvbiBvZiBhIGd1aWRlIHZhbmUgb2Ygc3RlYW0gdHVyYmluZSBjb250cm9sIHN0YWdlIGJ5IGVuZCB3YWxsIGNvbnRvdXJpbmcuIFRoZSBpbnZlc3RpZ2F0ZWQgY29udHJvbCBzdGFnZSBpcyBkZXJpdmVkIGZyb20gYW4gZXhpc3RpbmcgaW5kdXN0cmlhbCBzdGVhbSB0dXJiaW5lIGRlc2lnbi4gVGhlIGVuZCB3YWxsIGNvbnRvdXIgaXMgdmFyaWVkIGluIHJvdGF0aW9uYWwgZGlyZWN0aW9uIHdpdGhpbiBzcGVjaWZpZWQgcmVzdHJpY3Rpb25zIGJ5IGFuIGV2b2x1dGlvbmFyeSBhbGdvcml0aG0uIFRoZSBhbGdvcml0aG0gaXMgZGlyZWN0bHkgY29ubmVjdGVkIHRvIGEgbWVzaCBnZW5lcmF0b3IgYW5kIGEgQ29tcHV0YXRpb25hbCBGbHVpZCBEeW5hbWljcyAoQ0ZEKSBzb2x2ZXIuIFRoZSBvcHRpbWl6YXRpb24gZ29hbCBpcyB0aGUgcmVkdWN0aW9uIG9mIHRoZSB0b3RhbCBwcmVzc3VyZSBsb3NzIG92ZXIgdGhlIGd1aWRlIHZhbmUuIFRoZSBnZW9tZXRyeSBvZiB0aGUgcm90b3IgYmxhZGUgaGFzIGJlZW4gcmV0YWluZWQgdW5jaGFuZ2VkLiBUaGUgZmxvdyBmaWVsZCBvZiB0aGUgdmFyaWVkIHN0YWdlIGlzIGNvbXBhcmVkIHdpdGggdGhlIGJhc2VsaW5lIGdlb21ldHJ5LiBUaGUgb3B0aW11bSBjYW5kaWRhdGVzIGFyZSBmdXJ0aGVyIGludmVzdGlnYXRlZCB3aXRoIENGRCBzaW11bGF0aW9ucyBmb3IgZGlmZmVyZW50IG9wZXJhdGluZyBwb2ludCBzY2VuYXJpb3MuIE51bWVyaWNhbCByZXN1bHRzIHNob3cgdGhhdCB0aGUgYXhpc3ltZXRyaWMgZW5kIHdhbGwgY29udG91cmluZyBvZiB0aGUgbm96emxlIGhhcyBhIGNvbnNpZGVyYWJsZSBlZmZlY3Qgb24gdGhlIGxvc3MgYmVoYXZpb3Igb2YgdGhlIG5venpsZSBvdmVyIGEgd2lkZSByYW5nZSBvZiBwcmVzc3VyZSByYXRpb3MuIER1ZSB0byBlbmQgd2FsbCBjb250b3VyaW5nIHRoZSBib3VuZGFyeSBsYXllciBpbiB0aGUgbm96emxlIGlzIHNpZ25pZmljYW50bHkgYWZmZWN0ZWQgd2hpY2ggcmVzdWx0cyBpbiBhIHNpZ25pZmljYW50IHJlZHVjdGlvbiBvZiB0aGUgc2Vjb25kYXJ5IGZsb3cgZWZmZWN0cyBpbiB0aGUgZ3VpZGUgdmFuZXMuPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA3NDYvMzA3NDYucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij40MjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+QSBCSUFTRUQgUkFORE9NIEtFWSBHRU5FVElDIEFMR09SSVRITSBBUFBST0FDSCBGT1IgVU5JVCBDT01NSVRNRU5UIFBST0JMRU08L2gzPjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QXV0aG9yczo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGg0IGNsYXNzPSJhdXRob3JzIj5MdSYjMjM3O3MgQS4gQy4gUm9xdWUsIERhbGlsYSBCLiBNLiBNLiBGb250ZXMgYW5kIEZlcm5hbmRvIEEuIEMuIEMuIEZvbnRlczwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+QSBCaWFzZWQgUmFuZG9tIEtleSBHZW5ldGljIEFsZ29yaXRobSAoQlJLR0EpIGlzIHByb3Bvc2VkIHRvIGZpbmQgc29sdXRpb25zIGZvciB0aGUgdW5pdCBjb21taXRtZW50IHByb2JsZW0uIEluIHRoaXMgcHJvYmxlbSwgb25lIHdpc2hlcyB0byBzY2hlZHVsZSBlbmVyZ3kgcHJvZHVjdGlvbiBvbiBhIGdpdmVuIHNldCBvZiB0aGVybWFsIGdlbmVyYXRpb24gdW5pdHMgaW4gb3JkZXIgdG8gbWVldCBlbmVyZ3kgZGVtYW5kcyBhdCBtaW5pbXVtIGNvc3QsIHdoaWxlIHNhdGlzZnlpbmcgYSBzZXQgb2YgdGVjaG5vbG9naWNhbCBhbmQgc3Bpbm5pbmcgcmVzZXJ2ZSBjb25zdHJhaW50cy4gSW4gdGhlIEJSS0dBLCBzb2x1dGlvbnMgYXJlIGVuY29kZWQgYnkgdXNpbmcgcmFuZG9tIGtleXMsIHdoaWNoIGFyZSByZXByZXNlbnRlZCBhcyB2ZWN0b3JzIG9mIHJlYWwgbnVtYmVycyBpbiB0aGUgaW50ZXJ2YWwgWzAsMV0uIFRoZSBHQSBwcm9wb3NlZCBpcyBhIHZhcmlhbnQgb2YgdGhlIHJhbmRvbSBrZXkgZ2VuZXRpYyBhbGdvcml0aG0sIHNpbmNlIGJpYXMgaXMgaW50cm9kdWNlZCBpbiB0aGUgcGFyZW50IHNlbGVjdGlvbiBwcm9jZWR1cmUsIGFzIHdlbGwgYXMgaW4gdGhlIGNyb3Nzb3ZlciBzdHJhdGVneS4gVGVzdHMgaGF2ZSBiZWVuIHBlcmZvcm1lZCBvbiBiZW5jaG1hcmsgbGFyZ2Utc2NhbGUgcG93ZXIgc3lzdGVtcyBvZiB1cCAxMDAgdW5pdHMgZm9yIGEgMjQgaG91cnMgcGVyaW9kLiBUaGUgcmVzdWx0cyBvYnRhaW5lZCBoYXZlIHNob3duIHRoZSBwcm9wb3NlZCBtZXRob2RvbG9neSB0byBiZSBhbiBlZmZlY3RpdmUgYW5kIGVmZmljaWVudCB0b29sIGZvciBmaW5kaW5nIHNvbHV0aW9ucyB0byBsYXJnZS1zY2FsZSB1bml0IGNvbW1pdG1lbnQgcHJvYmxlbXMuIEZ1cnRoZXJtb3JlLCBmb3JtIHRoZSBjb21wYXJpc29ucyBtYWRlIGl0IGNhbiBiZSBjb25jbHVkZWQgdGhhdCB0aGUgcmVzdWx0cyBwcm9kdWNlZCBpbXByb3ZlIHVwb24gdGhlIGJlc3Qga25vd24gc29sdXRpb25zLjwvdGQ+DQogICAgICAgICAgICA8L3RyPjx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNjaXRlcHJlc3Mub3JnL1BhcGVycy8yMDEwLzMwNzY3LzMwNzY3LnBkZiI+RG93bmxvYWQ8L2E+PC90ZD48L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+NDM8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPldBVkVMRU5HVEggQ09OVkVSVEVSUyBQTEFDRU1FTlQgSU4gQUxMIE9QVElDQUwgTkVUV09SS1MgVVNJTkcgRElGRkVSRU5USUFMIEVWT0xVVElPTiBPUFRJTUlaQVRJT04KPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+R2VyYXJkbyBDYXN0YSYjMjQxOyYjMjQzO24sIEZlcm5hbmRvIExlemFtYSBhbmQgQW5hIE1hciYjMjM3O2EgU2FybWllbnRvPC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5QbGFjZW1lbnQgb2Ygd2F2ZWxlbmd0aCBjb252ZXJ0ZXJzIGluIGFuIGFyYml0cmFyeSBtZXNoIG5ldHdvcmsgaXMga25vd24gdG8gYmVsb25nIHRvIHRoZSBjbGFzcyBvZiBOUC1jb21wbGV0ZSBwcm9ibGVtcy4gU28gZmFyLCB0aGlzIHByb2JsZW0gaGFzIGJlZW4gc29sdmVkIGJ5IGhldXJpc3RpYyBzdHJhdGVnaWVzIG9yIGJ5IHRoZSBhcHBsaWNhdGlvbiBvZiBvcHRpbWl6YXRpb24gdG9vbHMgc3VjaCBhcyBnZW5ldGljIGFsZ29yaXRobXMuIC4gSW4gdGhpcyBwYXBlciB3ZSBpbnRyb2R1Y2UgdGhlIGFwcGxpY2F0aW9uIG9mIGRpZmZlcmVudGlhbCBldm9sdXRpb24gKERFKSB0byB0aGUgcGxhY2VtZW50IG9mIHdhdmVsZW5ndGggY29udmVydGVycyBwcm9ibGVtIHRvIGZpbmQgdGhlIG9wdGltYWwgc29sdXRpb24uIE1hbnkgY29tcGFyYXRpdmUgc3R1ZGllcyBjb25maXJtIGl0cyByb2J1c3RuZXNzIGFuZCBlZmZpY2llbmN5LCBhbmQgaW4gbWFueSBjYXNlcyBERSBvdXRwZXJmb3JtcyBtYW55IG90aGVyIHdlbGwga25vd24gZXZvbHV0aW9uYXJ5IGNvbXB1dGF0aW9uYWwgYXBwcm9hY2hlcyBpbiB0ZXJtcyBvZiBjb252ZXJnZW5jZSBzcGVlZCBhbmQgcXVhbGl0eSBvZiBzb2x1dGlvbnMuIFRoZSBtYWpvciBhZHZhbnRhZ2Ugb2YgdGhlIERFIGFsZ29yaXRobSByZXN0cyBpbiB0aGUgZmFjdCB0aGF0IGl0IGRvZXMgbm90IG5lZWQgdG8gYnVpbGQgdXAgYSBzZWFyY2ggdHJlZSBvciB0byBjcmVhdGUgYXV4aWxpYXJ5IGdyYXBocyB0byBmaW5kIHRoZSBvcHRpbWFsIHNvbHV0aW9ucy4gRnVydGhlcm1vcmUsIHRoZSBtZXRob2QgdHlwaWNhbGx5IHJlcXVpcmVzIGZldyBjb250cm9sIHBhcmFtZXRlcnMsIGFuZCB0aGUgY29tcHV0ZWQgcmVzdWx0cyBzaG93IHRoYXQgb25seSBhIHNtYWxsIHBvcHVsYXRpb24gaXMgbmVlZGVkIHRvIG9idGFpbiB0aGUgb3B0aW1hbCBzb2x1dGlvbnMgb2YgdGhlIHBsYWNlbWVudCBvZiB3YXZlbGVuZ3RoIGNvbnZlcnRlcnMgcHJvYmxlbSBpbiBhbiBhcmJpdHJhcnkgbmV0d29yay4gV2UgcHJlc2VudCBhbiBleHBlcmltZW50IHRoYXQgZGVtb25zdHJhdGVzIHRoZSBlZmZlY3RpdmVuZXNzIGFuZCBlZmZpY2llbmN5IG9mIHRoZSBwcm9wb3NlZCBldm9sdXRpb25hcnkgYWxnb3JpdGhtLjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICA8aHIvPg0KICAgICAgICA8dGFibGU+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5QYXBlciBOcjo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+NDY8L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlRpdGxlOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDMgY2xhc3M9InBhcGVyVGl0bGUiPklOVEVHUkFURUQgT1BUSU1JWkFUSU9OIE9GIEZVTkNUSU9OQUwgQU5EIExBWU9VVCBERVNJR05TIEJBU0VEIE9OIEdFTkVUSUMgQUxHT1JJVEhNCiAtIENvbnNpZGVyYXRpb24gb2YgQ2FyYm9uIEVtaXNzaW9uIHRyb3VnaG91dCBQcm9kdWN04oCZcyBMaWZlY3ljbGU8L2gzPjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QXV0aG9yczo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGg0IGNsYXNzPSJhdXRob3JzIj5NYXNha2F6dSBLb2JheWFzaGkgYW5kIE1hc2F0YWtlIEhpZ2FzaGk8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPkluIG91ciBwcmV2aW91cyByZXNlYXJjaCwgdGhlIGludGVncmF0ZWQgb3B0aW1pemF0aW9uIG9mIGZ1bmN0aW9uYWwgLyBsYXlvdXQgZGVzaWducyBiYXNlZCBvbiBnZW5ldGljIGFsZ29yaXRobSB3YXMgZGV2ZWxvcGVkIGZvciBzdXBwb3J0aW5nIGNvbmNlcHR1YWwgZGVzaWduIHBoYXNlLiBUaGlzIG1ldGhvZCBjYW4gb3B0aW1pemUgYSBmdW5jdGlvbmFsIHN0cnVjdHVyZSBhbmQgYSBwYXJ0cyBsYXlvdXQgc2ltdWx0YW5lb3VzbHkgYnkgZXZhbHVhdGluZyBwZXJmb3JtYW5jZSwgY29zdCBhbmQgc2l6ZS4gSW4gdGhpcyBwYXBlciwgd2Ugbm93IGZvY3VzIG9uIGNvbnNpZGVyYXRpb24gb2YgbGlmZWN5Y2xlIGNoYXJhY3RlcmlzdGljcyBpbiByZXNwb25zZSB0byByaXNlIG9mIGVudmlyb25tZW50YWwgYXdhcmVuZXNzIGluIHJlY2VudCB5ZWFycyBhbmQgY29tYmluZSBvdXIgcHJldmlvdXMgaW50ZWdyYXRlZCBtZXRob2Qgd2l0aCBsaWZlY3ljbGUgYXNzZXNzbWVudCAoTENBKSBpbiBvcmRlciB0byBlbmFibGUgY3JlYXRpb24gb2YgcHJvZHVjdCBjb25jZXB0cyB0aGF0IGJhbGFuY2UgdmFyaW91cyBjaGFyYWN0ZXJpc3RpY3MgaW5jbHVkaW5nIGxpZmVjeWNsZSBvbmVzIGF0IGEgaGlnaGVyIGxldmVsLiBUaGlzIHBhcGVyIGFsc28gc2hvd3MgYW4gYXBwbGljYXRpb24gb2YgdGhlIHByb3Bvc2VkIG1ldGhvZCB0byBhIHBlcnNvbmFsIGNvbXB1dGVyIGRlc2lnbiBhbmQgZGlzY3Vzc2VzIHRoZSBlZmZlY3Qgb2YgY29uc2lkZXJhdGlvbiBvZiBsaWZlY3ljbGUgY2hhcmFjdGVyaXN0aWNzIGR1cmluZyBjb25jZXB0dWFsIG9wdGltaXphdGlvbi48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDc3Mi8zMDc3Mi5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjU4PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5BIE1PRElGSUVEIE1VTFRJLVBPUFVMQVRJT04gR0VORVRJQyBBTEdPUklUSE0gRk9SIFBBUkFNRVRFUiBJREVOVElGSUNBVElPTiBPRiBDVUxUSVZBVElPTiBQUk9DRVNTIE1PREVMUzwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPk9seW1waWEgTi4gUm9ldmEsIEthbGluIEtvc2V2IGFuZCBUYW55YSBWLiBUcmVua292YTwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+SW4gdGhpcyB3b3JrIGEgbW9kaWZpZWQgbXVsdGktcG9wdWxhdGlvbiBnZW5ldGljIGFsZ29yaXRobSAoTVBHQSkgd2l0aG91dCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIG11dGF0aW9uIG9wZXJhdG9yIGlzIHByb3Bvc2VkLiBUaGUgaWRlYSBpcyB0byByZWR1Y2UgdGhlIGNvbnZlcmdlbmNlIHRpbWUgYW5kIHRoZXJlZm9yZSB0byBpbmNyZWFzZSB0aGUgaWRlbnRpZmljYXRpb24gcHJvY2VkdXJlIGVmZmVjdGl2ZW5lc3MgZm9yIG9uLWxpbmUgYXBwbGljYXRpb24gb2YgdGhlIGFsZ29yaXRobS4gTW9kaWZpZWQgTVBHQSwgY2xhc3NpY2FsIG11bHRpcG9wdWxhdGlvbiBHQSBhbmQgdHdvIG90aGVyIG1vZGlmaWNhdGlvbnMgYXJlIHRlc3RlZCBmb3IgcGFyYW1ldGVyIGlkZW50aWZpY2F0aW9uIHByb2JsZW0gb2YgYW4gRS4gY29saSBub24tbGluZWFyIGZlZC1iYXRjaCBjdWx0aXZhdGlvbiBtb2RlbC4gVGhlIGNvbnRyaWJ1dGlvbiBvZiBlYWNoIG1vZGlmaWNhdGlvbiBtZWFzdXJlIHRvIHRoZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCBpcyBkZW1vbnN0cmF0ZWQuIFRoZSBvYnRhaW5lZCByZXN1bHRzIHNob3cgdGhhdCB0aGUgaGlnaGVzdCBhY2N1cmFjeSBmb3IgcGFyYW1ldGVyIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBjb25zaWRlcmVkIG1vZGVsIGlzIGFjaGlldmVkIHdpdGggdGhlIG11bHRpcG9wdWxhdGlvbiBHQSB3aXRoIE1vZGlmaWNhdGlvbiAxLiBUaGUgYmVzdCBjYWxjdWxhdGlvbiB0aW1lIGlzIHNob3duIGJ5IHRoZSBtdWx0aXBvcHVsYXRpb24gR0Egd2l0aG91dCBtdXRhdGlvbi48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDgwNi8zMDgwNi5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjY3PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5DT01QQVJJU09OIE9GIE1FVEFIRVVSSVNUSUNTIEZPUiBXT1JLRk9SQ0UgRElTVFJJQlVUSU9OIElOIE1VTFRJLVNLSUxMIENBTEwgQ0VOVFJFUzwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkRhdmlkIE1pbGwmIzIyNTtuLVJ1aXosIEouIElnbmFjaW8gSGlkYWxnbyBhbmQgSm9zZWZhIEQmIzIzNzthejwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+Q2FsbCBjZW50cmUgdGVjaG5vbG9neSByZXF1aXJlcyB0aGUgYXNzaWdubWVudCBvZiBhIGxhcmdlIHZvbHVtZSBvZiBpbmNvbWluZyBjYWxscyB0byBhZ2VudHMgd2l0aCB0aGUgcmVxdWlyZWQgc2tpbGxzIHRvIHByb2Nlc3MgdGhlbS4gSW4gb3JkZXIgdG8gZGV0ZXJtaW5lIHRoZSByaWdodCBhc3NpZ25tZW50IGFtb25nIGluY29taW5nIGNhbGxzIGFuZCBhZ2VudHMgZm9yIGEgcmVhbCBwcm9kdWN0aW9uIGVudmlyb25tZW50LCBhIGNvbXBhcmF0aXZlIHN0dWR5IG9mIG1ldGEtaGV1cmlzdGljcyBoYXMgYmVlbiBjYXJyaWVkIG91dC4gVGhlIGFpbSBvZiB0aGlzIHN0dWR5IGlzIHRvIGltcGxlbWVudCBhbmQgZW1waXJpY2FsbHkgY29tcGFyZSB2YXJpb3VzIHJlcHJlc2VudGF0aXZlIG1ldGEtaGV1cmlzdGljcywgd2hpY2ggcmVwcmVzZW50IGRpc3RpbmN0IHNlYXJjaCBzdHJhdGVnaWVzIHRvIHJlYWNoIGFjY3VyYXRlLCBmZWFzaWJsZSBzb2x1dGlvbnMsIGZvciB0d28gZGlmZmVyZW50IGluc3RhbmNlcyBvZiB0aGUgd29ya2ZvcmNlIGRpc3RyaWJ1dGlvbiBwcm9ibGVtLiBUaGlzIHN0dWR5IHBvaW50cyBvdXQgaG93IG1lbWV0aWMgYWxnb3JpdGhtcyBjYW4gb3V0cGVyZm9ybSBvdGhlciBhY2tub3dsZWRnZWQgbWV0YS1oZXVyaXN0aWNzIGZvciB0d28gZGlmZmVyZW50IHByb2JsZW0gaW5zdGFuY2VzIGZyb20gYSByZWFsIG11bHRpLXNraWxsIGNhbGwgY2VudHJlIGZyb20gb25lIG9mIHRoZSB3b3JsZCYjMzk7cyBsYXJnZXN0IHRlbGVjb21tdW5pY2F0aW9ucyBjb21wYW5pZXMuPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA4MzUvMzA4MzUucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij43MzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+TEFNQVJDS0lBTiBFVk9MVVRJT04gT0YgTkVVUkFMIE5FVFdPUktTIEFQUExJRUQgVE8gS0VZU1RST0tFIERZTkFNSUNTPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+UGF1bG8gSGVucmlxdWUgUGlzYW5pIGFuZCBTaWx2aW8gZG8gTGFnbyBQZXJlaXJhPC9oND48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkFic3RyYWN0OjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij5UaGUgcGFjZSBvZiBjb21wdXRpbmcgYW5kIGNvbW11bmljYXRpb25zIGRldmVsb3BtZW50IGhhcyBjb250cmlidXRlZCB0byBhbiBpbmNyZWFzZWQgZGF0YSBleHBvc3VyZSBhbmQsIGNvbnNlcXVlbnRseSwgdG8gdGhlIHJpc2Ugb2YgYW4gaXNzdWUga25vd24gYXMgaWRlbnRpdHkgdGhlZnQuIEJ5IGFwcGx5aW5nIHVzZXIgcHJvZmlsaW5nLCB3aGljaCBhbmFseXplcyB0aGUgdXNlciBiZWhhdmlvciBpbiBvcmRlciB0byBwZXJmb3JtIGEgY29udGludW91cyBhdXRoZW50aWNhdGlvbiwgcHJvdGVjdGlvbiBvZiBkaWdpdGFsIGlkZW50aXRpZXMgY2FuIGJlIGVuaGFuY2VkLiBBbW9uZyB0aGUgcG9zc2libGUgZmVhdHVyZXMgdG8gYmUgYW5hbHl6ZWQsIHRoaXMgcGFwZXIgZm9jdXNlcyBvbiBrZXlzdHJva2UgZHluYW1pY3MsIHNvbWV0aGluZyB0aGF0IGNhbm5vdCBiZSBlYXNpbHkgc3RvbGVuLiBBcyBrZXlzdHJva2UgZHluYW1pY3MgaW52b2x2ZXMgZGVhbGluZyB3aXRoIG5vaXN5IGRhdGEsIGl0IHdhcyBjaG9zZW4gYSBuZXVyYWwgbmV0d29yayB0byBwZXJmb3JtIHRoZSBwYXR0ZXJuIHJlY29nbml0aW9uIHRhc2suIEhvd2V2ZXIsIHRyYWRpdGlvbmFsIG5ldXJhbCBuZXR3b3JrIHRyYWluaW5nIGFsZ29yaXRobXMgYXJlIGJvdW5kIHRvIGdldCB0cmFwcGVkIGluIGxvY2FsIG1pbmltdW0sIHJlZHVjaW5nIHRoZSBsZWFybmluZyBhYmlsaXR5LiBUaGlzIHdvcmsgZHJhd3MgYSBjb21wYXJpc29uIGJldHdlZW4gYmFja3Byb3BhZ2F0aW9uIGFuZCB0d28gaHlicmlkIGFwcHJvYWNoZXMgYmFzZWQgb24gZXZvbHV0aW9uYXJ5IHRyYWluaW5nLCBmb3IgdGhlIHRhc2sgb2Yga2V5c3Ryb2tlIGR5bmFtaWNzLiBEaWZmZXJlbnRseSBmcm9tIG1vc3QgZXZvbHV0aW9uYXJ5IGFsZ29yaXRobXMgYmFzZWQgb24gRGFyd2luaXNtLCB0aGlzIHdvcmsgYWxzbyBzdHVkaWVzIExhbWFyY2tpYW4gZXZvbHV0aW9uYXJ5IGFsZ29yaXRobXMgdGhhdCwgYWx0aG91Z2ggbm90IGJlaW5nIGJpb2xvZ2ljYWxseSBwbGF1c2libGUsIGF0dGFpbmVkIHByb21pc2luZyByZXN1bHRzIGluIHRoZSB0ZXN0cy48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDg0NS8zMDg0NS5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjc4PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5USEUgUk9MRSBPRiBLRUVQSU5HIOKAnFNFTUFOVElDIEJMT0NLU+KAnSBJTlZBUklBTlQgLSBFZmZlY3RzIGluIExpbmVhciBHZW5ldGljIFByb2dyYW1taW5nIFBlcmZvcm1hbmNlPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+TWFyaW5hIGRlIGxhIENydXogRWNoZWFuZCYjMjM3O2EsIEFsYmEgTWFydCYjMjM3O24gTCYjMjI1O3phcm8sIEFsZm9uc28gT3J0ZWdhIGRlIGxhIFB1ZW50ZSwgSm9zJiMyMzM7IEx1aXMgTW9udGEmIzI0MTthIEFybiYjMjI1O2l6IGFuZCBDJiMyMzM7c2FyIEwuIEFsb25zbzwvaDQ+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BYnN0cmFjdDo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+VGhpcyBwYXBlciBpcyBmb2N1c2VkIG9uIHR3byBkaWZmZXJlbnQgYXBwcm9hY2hlcyAocHJldmlvdXNseSBwcm9wb3NlZCBieSB0aGUgYXV0aG9ycykgdGhhdCBwZXJmb3JtIGJldHRlciB0aGFuIEdlbmV0aWMgUHJvZ3JhbW1pbmcgaW4gdHlwaWNhbCBzeW1ib2xpYyByZWdyZXNzaW9uIHByb2JsZW1zOiBzdHJhaWdodC1saW5lIHByb2dyYW0gZ2VuZXRpYyBwcm9ncmFtbWluZyAoU0xQLUdQKSBhbmQgZXZvbHV0aW9uIHdpdGggYXR0cmlidXRlIGdyYW1tYXJzIChBR0UpLiBCb3RoIGFwcHJvYWNoZXMgaGF2ZSBkaWZmZXJlbnQgY2hhcmFjdGVyaXN0aWNzLiBPbmUgb2YgdGhlbW9zdCBpbXBvcnRhbnQgaXMgdGhhdCBTTFAtR1Aga2VlcHMgc2VtYW50aWMgYmxvY2tzIGludmFyaWFudCAodGhlIGNyb3Nzb3ZlciBvcGVyYXRvciBhbHdheXMgZXhjaGFuZ2VzIGNvbXBsZXRlIHN1YmV4cHJlc3Npb25zKS4gSW4gdGhpcyBwYXBlciB3ZSBjb21wYXJlIGJvdGggbWV0aG9kcyBhbmQgc3R1ZHkgdGhlIHBvc3NpYmxlIGVmZmVjdCBvbiB0aGVpciBwZXJmb3JtYW5jZSBvZiBrZWVwaW5nIHRoZXNlIGJsb2NrcyBpbnZhcmlhbnQuPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzA4NTQvMzA4NTQucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij44MjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+QSBHRU5FVElDIEFMR09SSVRITSBXSVRIIEEgTVVMVEktTEFZRVJFRCBHRU5PVFlQRS1QSEVOT1RZUEUgTUFQUElORzwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPlNlYW11cyBIaWxsIGFuZCBDb2xtIE8mIzM5O1Jpb3JkYW48L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPkluIHRoaXMgcGFwZXIgd2UgaW52ZXN0aWdhdGUgdGhlIGludHJvZHVjdGlvbiBvZiBhIG11bHRpcGxlLWxheWVyIGdlbm90eXBlLXBoZW5vdHlwZSBtYXBwaW5nIHRvIGEgR2VuZXRpYyBBbGdvcml0aG0gKEdBKSB3aGljaCBhdHRlbXB0cyB0byBtaW1pYyBtb3JlIGNsb3NlbHksIHRoZSBlZmZlY3RzIG9mIG5hdHVyZS4gVGhlIG1vdGl2YXRpb24gZm9yIGludHJvZHVjaW5nIG11bHRpcGxlLWxheWVycyBpbnRvIHRoZSBnZW5vdHlwZS1waGVub3R5cGUgbWFwcGluZyBpcyB0byBjcmVhdGUgYSBtYW55LXRvLW9uZSBnZW5vdHlwZS1waGVub3R5cGUgbWFwcGluZy4gVGhlIHBhcGVyIGNvbXBhcmVzIGEgdHJhZGl0aW9uYWwgR0Egd2l0aCBhIEdBIGNvbnRhaW5pbmcgYSBtdWx0aS1sYXllcmVkIGdlbm90eXBlLXBoZW5vdHlwZSBtYXBwaW5nIHVzaW5nIGEgbnVtYmVyIG9mIHdlbGwgdW5kZXJzdG9vZCBwcm9ibGVtcyBpbiBhbiBhdHRlbXB0IHRvIGlsbHVzdHJhdGUgdGhlIHBvdGVudGlhbCBiZW5lZml0cyBvZiBpbmNsdWRpbmcgdGhlIG11bHRpbGF5ZXJlZCBtYXBwaW5nLiBJbml0aWFsIGZpbmRpbmdzIHN1Z2dlc3QgdGhhdCB0aGUgbXVsdGktbGF5ZXJlZCBtYXBwaW5nIGJldHdlZW4gdGhlIGdlbm90eXBlLXBoZW5vdHlwZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYSBiaW5hcnkgcmVwcmVzZW50YXRpb24gb3V0cGVyZm9ybXMgZXhpc3RpbmcgdHJhZGl0aW9uYWwgR0EgYXBwcm9hY2hlcyBvbiB3ZWxsIGtub3duIHByb2JsZW1zLCB3aGlsZSBzdGlsbCBhbGxvd2luZyB0aGUgdXNlIHdlbGwgdW5kZXJzdG9vZCBnZW5ldGljIG9wZXJhdG9ycy48L3RkPg0KICAgICAgICAgICAgPC90cj48dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj48YSBocmVmPSJodHRwczovL3d3dy5zY2l0ZXByZXNzLm9yZy9QYXBlcnMvMjAxMC8zMDg2Mi8zMDg2Mi5wZGYiPkRvd25sb2FkPC9hPjwvdGQ+PC90cj4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPGhyLz4NCiAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+UGFwZXIgTnI6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjk2PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5UaXRsZTo8L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93Q29udGVudCI+PGgzIGNsYXNzPSJwYXBlclRpdGxlIj5VU0lORyBVTklGT1JNIENST1NTT1ZFUiBUTyBSRUZJTkUgU0lNVUxBVEVEIEFOTkVBTElORyBTT0xVVElPTlMgRk9SIEFVVE9NQVRJQyBERVNJR04gT0YgU1BBVElBTCBMQVlPVVRTCjwvaDM+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8dHI+ICAgICANCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd1RpdGxlIj5BdXRob3JzOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij48aDQgY2xhc3M9ImF1dGhvcnMiPkZhZHJhdHVsIEhhZmluYXogSGFzc2FuIGFuZCBBbGxhbiBUdWNrZXI8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPlRoZSBlYXNlIG9mIG1vdmVtZW50IG9mIHBlb3BsZSBpbnNpZGUgYSBwdWJsaWMgc3BhY2UgaXMgaGlnaGx5IGltcGFjdGVkIGJ5IHRoZSBwdWJsaWMgc3BhY2UgbGF5b3V0IGl0c2VsZi4gRm9yIGV4YW1wbGUsIHRoZSBmbG93IG9mIGEgbGFyZ2UgbnVtYmVyIG9mIHBlb3BsZSBzaG91bGQgYmUgc21vb3RoIGluIGEgd2VsbCBkZXNpZ25lZCBwdWJsaWMgc3BhY2Ugc3VjaCBhcyBhIHN0YWRpdW0gb3IgaG9zcGl0YWwuIEluIGV4dHJlbWUgY2FzZXMsIHBlb3BsZSBtaWdodCBjcnVzaCB0byBkZWF0aCBkdXJpbmcgZW1lcmdlbmN5IGV2YWN1YXRpb25zIGluIHBvb3JseSBkZXNpZ25lZCBzcGFjZXMuIEl0IGlzIHZpdGFsIHRoYXQgZGVzaWduIHRha2VzIGludG8gYWNjb3VudCB0aGUgc21vb3RoIGZsb3cgb2YgcGVkZXN0cmlhbnMuIEluIHRoaXMgcGFwZXIgd2UgZGVzY3JpYmUgYW4gaW5pdGlhbCBleHBsb3JhdGlvbiBpbiB1c2luZyBtb2RlbHMgb2YgcGVkZXN0cmlhbiBmbG93IGNvbWJpbmVkIHdpdGggaGV1cmlzdGljIHNlYXJjaCB0byBhc3Npc3QgaW4gdGhlIGF1dG9tYXRpYyBkZXNpZ24gZm9yIHNwYXRpYWwgbGF5b3V0LiBBIHR3by13YXkgcGVkZXN0cmlhbiBmbG93IHN5c3RlbSBpcyBzaW11bGF0ZWQgYW5kIGhldXJpc3RpYyBzZWFyY2ggdGVjaG5pcXVlcyAoZ2VuZXRpYyBhbGdvcml0aG0sIHNpbXVsYXRlZCBhbm5lYWxpbmcgYW5kIGhpbGwgY2xpbWJpbmcpIGFyZSB1c2VkIHRvIGZpbmQgZmVhc2libGUgc3BhdGlhbCBsYXlvdXRzIGJhc2VkIHVwb24gdGhlIGdlbmVyYXRlZCBzdGF0aXN0aWNzIHdpdGggcHJvbWlzaW5nIHJlc3VsdHMuPC90ZD4NCiAgICAgICAgICAgIDwvdHI+PHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NpdGVwcmVzcy5vcmcvUGFwZXJzLzIwMTAvMzExMzUvMzExMzUucGRmIj5Eb3dubG9hZDwvYT48L3RkPjwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgICAgIDx0YWJsZT4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPlBhcGVyIE5yOjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dDb250ZW50Ij45OTwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+VGl0bGU6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoMyBjbGFzcz0icGFwZXJUaXRsZSI+VE9XQVJEUyBNT0RFTC1EUklWRU4gREFUQSBXQVJFSE9VU0UgQVVUT01BVElPTiBVU0lORyBNQUNISU5FIExFQVJOSU5HPC9oMz48L3RkPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDx0cj4gICAgIA0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icm93VGl0bGUiPkF1dGhvcnM6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPjxoNCBjbGFzcz0iYXV0aG9ycyI+TW9leiBFc3NhaWRpIGFuZCBBb21hciBPc21hbmk8L2g0PjwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPHRyPiAgICAgDQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyb3dUaXRsZSI+QWJzdHJhY3Q6PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJvd0NvbnRlbnQiPk1vZGVsLWRyaXZlbiBkYXRhIHdhcmVob3VzZSBhaW1zIHRvIGFwcGx5IHRoZSBtb2RlbC1kcml2ZW4gZW5naW5lZXJpbmcgYXBwcm9hY2ggdG8gZGVyaXZlIHRoZSBkYXRhIHdhcmVob3VzZSBjb21wb25lbnQuIFRyYW5zZm9ybWF0aW9ucyBkZXNpZ24gaXMgYW4gZXNzZW50aWFsIHRhc2sgZHVyaW5nIHRoZSBtb2RlbC1kcml2ZW4gZW5naW5lZXJpbmcgcHJvY2Vzcy4gSG93ZXZlciwgVHJhbnNmb3JtYXRpb25zIGRldmVsb3BtZW50IGlzIGEgdmVyeSBoYXJkIHRhc2sgYW5kIG5lZWRzIHNlcmlvdXMgc2tpbGxzLiBNb2RlbCB0cmFuc2Zvcm1hdGlvbiBieSBleGFtcGxlIGlzIGEgbm92ZWwgYXBwcm9hY2ggaW4gbW9kZWwtZHJpdmVuIHNvZnR3YXJlIGVuZ2luZWVyaW5nIHRvIGRlcml2ZSB0cmFuc2Zvcm1hdGlvbiBydWxlcyBmcm9tIGFuIGluaXRpYWwgc2V0IG9mIG1hcHBpbmcgZXhhbXBsZXMuIFRoaXMgcGFwZXIgYWltcyB0byBpbnRyb2R1Y2Ugb3VyIHJlc2VhcmNoIGVmZm9ydCB0byBhdXRvbWF0ZSBtb2RlbC1kcml2ZW4gZGF0YSB3YXJlaG91c2UgZGV2ZWxvcG1lbnQgdXNpbmcgdGhlIG1vZGVsIHRyYW5zZm9ybWF0aW9uIGJ5IGV4YW1wbGUgYXBwcm9hY2guPC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgIDxoci8+DQogICAgPC9kaXY+DQpkZGTeaO5E03Q6xm6aGhVTqGmesb+a28FNmWyjG705s4yPyw==" /> </div> <div> <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="2FAFABAE" /> </div> <div> <style> body { background-color: White; font-family: Arial, Helvetica, sans-serif; text-align: center; background-color: #000000; } .content { width: 800px; text-align: left; margin: 0px auto; padding: 24px; /*border: solid 1px #000000;*/ background-color: #FFFFFF; } .title { text-decoration: none; color: #000000; font-size: 36px; font-weight: bold; text-align: left; } .paperTypes { margin-left: 20px; margin-bottom: 10px; font-size: 15px; font-weight: normal; } .menu { margin-top: 20px; margin-bottom: 30px; font-size: 17px; font-weight: bold; } .menuOption { text-decoration: none; color: #000000; text-align: left; margin-left: 10px; margin-right: 10px; } .rowTitle { font-size: 12px; width: 75px; height: 20px; font-weight: bold; text-align: right; padding-right: 3px; } .rowContent { font-size: 12px; text-align: justify; } .area { font-weight: bold; font-size: 17px; } .paperType { font-weight: bold; font-size: 15px; display: block; margin-bottom: 10px; } .paperTitle { font-size: 12px; display: inline; font-weight: normal; } .authors { display: inline; font-weight: normal; font-size: 12px; } </style> <span id="textLb"><div class="content"> <h1 class="title">ICEC 2010 Abstracts</h1> <div class="menu"> <div class="paperTypes"> <a href="#Area0FullPapers" class="menuOption">Full Papers</a> <a href="#Area0ShortPapers" class="menuOption">Short Papers</a> </div> </div> <hr/> <span id="Area0FullPapers" class="paperType">Full Papers</span> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">12</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">ACO FOR OPTIMAL SENSOR LAYOUT</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Stefka Fidanova, Pencho Marinov and Enrique Alba</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Metaheuristic methods have frequently been applied to telecommunication problems in the last years. One of these problems is Wireless Sensor Network (WSN) layout, which is an NP-hard optimization problem. The sensors sent their sensing results to a special station called the High Energy Communication Node (HECN). The sensing area of the WSN is the union of the individual sensing areas of the nodes. When deploying a WSN, the major objective is to achieve full coverage of the terrain (sensor field). Another objectives are also to use a minimum number of sensor nodes and to keep the connectivity of the network. In this paper we address a WSN layout problem in which full coverage and connectivity are treated as constraints, while objective function is the number of the sensors. To solve it we propose Ant Colony Optimization (ACO) algorithm. The terrain is modeled with 500&#215;500 points grid and both sensing radius and communication radius are set to 30. We compare our results with existing evolutionary algorithms.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30576/30576.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">24</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">GRAMMATICAL EVOLUTION AND THE SANTA FE TRAIL PROBLEM</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Loukas Georgiou and William J. Teahan</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">In this paper we present the results of a series of experiments which explore the effectiveness of Grammatical Evolution for the Santa Fe Trail problem. The experiments which are presented support the claim of other published work that the comparison mentioned in the Grammatical Evolution literature between Grammatical Evolution (GE) and Genetic Programming (GP) regarding the Santa Fe Trail problem is not a fair one. Namely, GE literature claims that GE outperforms GP in the Santa Fe Trail problem, but we show that this happens only because the GE experiments described in the literature use a different and narrower search space. In order to perform the experiments, a series of tools and models have been developed and are presented: a) jGE, a Java implementation of the Grammatical Evolution system; b) jGE NetLogo, an extension of jGE for the NetLogo modelling environment; c) the Santa Fe Trail model, a simulation of the problem in NetLogo; and d) a NetLogo model for the execution of the experiments. Finally, we show that Grammatical Evolution is capable of finding solutions in the Santa Fe Trail problem that require fewer steps than the solutions mentioned in the GP and GE literature.</td> </tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">27</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">ALGORITHMS FOR EVOLVING NO-LIMIT TEXAS HOLD&#39;EM POKER PLAYING AGENTS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Garrett Nicolai and Robert Hilderman</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Computers have difficulty learning how to play Texas Hold&#39;em Poker. The game contains a high degree of stochasticity, hidden information, and opponents that are deliberately trying to mis-represent their current state. Poker has a much larger game space than classic parlour games such as Chess and Backgammon. Evolutionary methods have been shown to find relatively good results in large state spaces, and neural networks have been shown to be able to find solutions to non-linear search problems. In this paper, we present several algorithms for teaching agents how to play No-Limit Texas Hold&#39;em Poker using a hybrid method known as evolving neural networks. Furthermore, we adapt heuristics such as halls of fame and co-evolution to be able to handle populations of Poker agents, which can sometimes contain several hundred opponents, instead of a single opponent. Our agents were evaluated against several benchmark agents. Experimental results show the overall best performance was obtained by an agent evolved from a single population (i.e., with no co-evolution) using a large hall of fame. These results demonstrate the effectiveness of our algorithms in creating competitive No-Limit Texas Hold&#39;em Poker agents.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30630/30630.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">29</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">REALIZING ASSOCIATED EVOLUTION COURSES - The Co-evolution in the Artificial World of Manufacturing</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Tarek AlGeddawy and Hoda ElMaraghy</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">The artificial world of products design and manufacturing technology experiences changes that result in the evolution of these entities. These changes are similar to the biological evolution process in the natural world and can be tracked similarly. The co-development behaviour in the artificial world is also noticeable, which suggests that design and technology co-evolve in a manner akin to the co-evolution of species in nature. A co-evolution model and algorithms are proposed based on Cladistics – a biological classification tool. Machine-tools development case study is presented to demonstrate the model. Results prove the model propositions and illustrate the direct co-development of design and technology.</td> </tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">37</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">COEVOLUTIONARY ARCHITECTURES WITH STRAIGHT LINE PROGRAMS FOR SOLVING THE SYMBOLIC REGRESSION PROBLEM</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Cruz Enrique Borges, C&#233;sar L. Alonso, Jos&#233; Luis Monta&#241;a, Marina de la Cruz Echeandia and Alfonso Ortega de la Puente</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">To successfully apply evolutionary algorithms to the solution of increasingly complex problems we must develop effective techniques for evolving solutions in the form of interacting coadapted subcomponents. In this paper we present an architecture which involves cooperative coevolution of two subcomponents: a genetic program and an evolution strategy. As main difference with work previously done, our genetic program evolves straight line programs representing functional expressions, instead of tree structures. The evolution strategy searches for good values for the numerical terminal symbols used by those expressions. Experimentation has been performed over symbolic regression problem instances and the obtained results have been compared with those obtained by means of Genetic Programming strategies without coevolution. The results show that our coevolutionary architecture with straight line programs is capable to obtain better quality individuals than traditional genetic programming using the same amount of computational effort.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30751/30751.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">39</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">COLLECTIVE PERCEPTION IN A SWARM OF AUTONOMOUS ROBOTS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Giuseppe Morlino, Vito Trianni and Elio Tuci</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">We present a study that aims at understanding how perception can be the result of a collective, self-organising process. A group of robots is placed in an environment characterized by black spots painted on the ground. The density of the spots can vary from trial to trial, and robots have to collectively encode such density into a coherent flashing activity. Overall, robots should prove capable of perceiving the global density by exploiting only local information and robot-robot interactions. We show how we can synthesize individual controllers that allow collective perception by exploiting evolutionary robotics techniques. This work is a first attempt to study cognitive abilities such as perception, decision-making, or attention in a synthetic setup as result of a collective, self-organising process.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30754/30754.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">40</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">SOLVING THE RING ARC-LOADING PROBLEM USING A HYBRID SCATTER SEARCH ALGORITHM</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Anabela Moreira Bernardino, Eug&#233;nia Moreira Bernardino, Juan Manuel S&#225;nchez-P&#233;rez, Juan Antonio G&#243;mez-Pulido and Miguel Angel Vega-Rodr&#237;guez</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Resilient Packet Ring (RPR) is a standard that uses Ethernet switching and a dual counter-rotating ring topology to provide SONET-like network resiliency and optimised bandwidth usage, while it delivers multipoint Ethernet/IP services. An important optimisation problem arising in this context is the Weighted Ring Arc Loading Problem (WRALP). That is the design of a direct path for each request in a communication network, in such a way that high load on the arcs will be avoided, where an arc is an edge endowed with a direction. The load of an arc is defined as the total weight of those requests routed through the arc in its direction. WRALP ask for a routing scheme such that the maximum load on the arcs will be minimum. In this paper we study the loading problem without demand splitting and for solving it we propose a Hybrid Scatter Search (HSS) algorithm. Coupled with the Scatter Search algorithm we use a Tabu Search algorithm to locate the global minimum. We show that HSS is able to achieve feasible solutions to WRALP instances, improving the results obtained by previous approaches.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30762/30762.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">56</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">A GENERALIZED EXTREMAL OPTIMIZATION-INSPIRED ALGORITHM FOR PREDICTIVE MAINTENANCE SCHEDULING PROBLEMS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Pasquale Arpaia, Domenico Maisto and Carlo Manna</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">A bit-encoded heuristic evolutionary optimization algorithm inspired by the Generalized Extremal Optimization method is presented. The proposed evolutionary approach aims at optimizing a predictive maintenance scheduling problem characterized by an analytically intractable objective function. A preliminary comparison with a standard genetic algorithm on a set of high-dimension cases of the considered maintenance problem shows better performance for the proposed approach.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30802/30802.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">60</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">SUBGRAPH EXTRACTION AND MEMETIC ALGORITHM FOR THE MAXIMUM CLIQUE PROBLEM</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Duc-Cuong Dang and Aziz Moukrim</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">The maximum clique problem involves finding the largest set of pairwise adjacent vertices in a graph. The problem is classic but still attracts much attention because of its hardness and its prominent applications. Our work is based on the existence of an order on all the vertices whereby those belonging to a maximum clique stay close enough to each other. Such an order can be identified via the extraction of a particular subgraph from the original graph. The problem can consequently be seen as a permutation problem that can be addressed efficiently with an evolutionary-like algorithm, here we use a memetic algorithm (MA). Computational experiments conducted on DIMACS benchmark instances clearly show our MA which not only outperforms existing genetic approaches, but also compares very well to state-of-the-art algorithms. </td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30810/30810.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">80</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">EXPLORING THE COMPLEXITY OF A PROPOSED RECURSIVE MEASURE OF RECOMBINATIONAL DISTANCE</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Robert Collier and Mark Wineberg</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">When studying evolutionary systems, either from the natural world or artificially constructed using simulated populations, researchers must be able to quantify the genotypic differences that are observed. With the simple genetic algorithm employing both a unary mutation operator and a binary recombination operator to maintain variation in the population, it is exceedingly difficult to quantify the distance between elements of the chromosome space with an approach that is truly representative of the distance that would need to be traversed by the evolutionary mechanism. Although evaluation function dependence and the binary arity of the recombination operator both contribute to this difficulty, it is possible to redefine the function of recombination in such a way as to facilitate the computation of a more representative measurement of the distance the genetic algorithm would need to traverse to create a specific chromosome from a given population. The recursive approach presented here entails the definition of unary recombination operators and ultimately results in a technique for calculating the recombinational distance between chromosomes with a time complexity that is improved logarithmically over a simplistic approach.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30858/30858.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">84</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">IMPROVED COMPRESSED OBJECTIVE GENETIC ALGORITHM: COGA-II</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Kittipong Boonlong, Nachol Chaiyaratana and Kuntinee Maneeratana</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">This paper presents an improved version of compressed objective genetic algorithm to solve problems with a large number of objectives. The improved compressed objective genetic algorithm (COGA-II) employs a rank assignment for the screening of non-dominated solutions that best approximate the Pareto front from vast numbers of available non-dominated solutions. Since the winning non-dominated solutions are heuristically determined from the survival competition, the procedure is referred to as a winning-score based ranking mechanism. In COGA-II, an m-objective vector is transformed to only one criterion, the winning score of which assignment is improved from that of the previous version, COGA. COGA-II is subsequently benchmarked against a non-dominated sorting genetic algorithm II (NSGA-II) and an improved strength Pareto genetic algorithm (SPEA-II), in seven scalable DTLZ benchmark problems. The results reveal that for the closeness to the true Pareto front COGA-II is much better than NSGA-II, and SPEA-II. For diversity of solutions, the diversity of the solutions by COGA-II is comparable to that of SPEA-II, while NSGA-II has poor diversity. COGA-II can also prevent solutions diverging from true Pareto solutions that occur on NSGA-II and SPEA-II for problems with more than 4 objectives. Thus, it can be concluded that COGA-II is suitable for solving an optimization problem with a large number of objectives.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30867/30867.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">85</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">INVESTIGATING REPLACEMENT STRATEGIES FOR THE ADAPTIVE DISSORTATIVE MATING GENETIC ALGORITHM</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Carlos M. Fernandes, Juan Jul&#225;n Merelo and Agostinho C. Rosa</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">This paper investigates the effects of modifying the Adaptive Dissortative Mating Genetic Algorithm (ADMGA) replacement strategy on the performance of the algorithm in dynamic problems. ADMGA is a variation of the standard GA with a mating restriction based on the genotypic similarity of the individuals. Dissimilar individuals mate more often than expected by chance and, as a result, genetic diversity throughout the run is maintained at a higher level. ADMGA was previously tested in dynamic optimization problems with promising results: the algorithm shows to outperform standard GAs and state-of-the-art approaches on several problems and dynamics. However, the performance of the algorithm degrades when the frequency of changes increases. Due to the premises under which ADMGA was tested, it has been argued that the replacement strategy that emerges from the algorithm’s dissortative mating strategy may be harming the performance in such situations. This study proposes alternative replacement schemes with the objective of improving ADMGA’s performance on fast changing environments (without damaging the performance on slower ones). The strategies maintain the simplicity of the algorithm, i.e., the parameter set is not increased. The replacement schemes were tested in dynamic environments based on stationary functions with different characteristics, showing to improve standard ADMGA’s performance in fast dynamic problems. </td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30870/30870.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">86</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">A RECEDING HORIZON GENETIC ALGORITHM FOR DYNAMIC MULTI-TARGET ASSIGNMENT AND TRACKING - A Case Study on the Optimal Positioning of Tug Vessels along the Northern Norwegian Coast</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Robin T. Bye, Siebe B. van Albada and Harald Yndestad</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Combining methodologies from cybernetics and artificial intelligence (AI), we present a receding horizon genetic algorithm (RHGA) for solving the task of dynamic assignment and tracking of multiple targets. We demonstrate the capabilities of the algorithm by means of a case study on optimal positioning of tugs to reduce the risk of oil tanker drifting accidents along the northern Norwegian coast. Through simulations we show that the RHGA performs intelligent target assignment and close target tracking while constantly reevaluating its suggested solutions based on current and predicted information. We see great potential for further development and consider our RHGA and problem description a platform for further research.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30871/30871.pdf">Download</a></td></tr> </table> <hr/> <span id="Area0ShortPapers" class="paperType">Short Papers</span> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">19</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">A GENETIC ALGORITHM APPROACH TO A 3D HIGHWAY ALIGNMENT DEVELOPMENT</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Botan M. Ahmad AL-Hadad and Michael Mawdesley</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">This paper reports for the possibility of developing a genetic algorithm (GA) based technique model to optimize highway alignment. It suggests a novel technique to optimize a highway alignment in a three dimensional space. The technique considers station points to simultaneously configure both horizontal and vertical alignment rather than considering the existing conventional principles of design which deals with both alignments in two different stages and uses horizontal intersection points (HIP), vertical intersection points (VIP), tangents (T), curve radii (R), deflection angles (∆), grade values (&#177; g %), and horizontal and vertical curve fittings to depict the horizontal and vertical alignments. The proposed method is expected to produce a global optimal or near optimal solution and also to reduce the number of highway alignment design elements required and consequently reduce the constraints imposed on alignment planning and design. The results obtained have good merits and encourage further investigations for better solutions. </td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30602/30602.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">21</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">CONSTRAINT BASED SCHEDULING IN A GENETIC ALGORITHM FOR THE SINGLE MACHINE SCHEDULING PROBLEM WITH SEQUENCE-DEPENDENT SETUP TIMES</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Aymen Sioud, Marc Gravel and Caroline Gagn&#233;</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">This paper presents a hybrid approach based on the integration between Genetic Algorithm (GA) and Constraint Based Scheduling (CBS) approaches for solving a scheduling problem. The main contributions are the integration of the CBS approach in the reproduction and the intensification processes of a GA autonomously. The proposed methodology is applied to a single machine scheduling problem with sequence-dependent setup times for the objective of minimizing the total tardiness. A sensitivity analysis of the hybrid methodology is carried out to compare the performance of the GA and the integrated GA-CBS approaches on different benchmarks from the literature.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30606/30606.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">26</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">EXPLORATION OF QUANTITATIVE ASSESSMENT IN SYSTEMS ARCHITECTURE USING EVIDENTIAL REASONING</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Yixing Shan, Lili Yang and Roy Kalawsky</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">A key issue in successful developing complex systems is how to assess the performance of architecture model during the development process. Traditional assessment techniques are subjective and usually highlight weaknesses rather than provide quantitative and objective results. In addition, the increasing complexity of systems nowadays; has led to a move from federated systems which were closed and target unique to embedded open systems, which extends new criteria to be considered in the assessment. This paper provides an insight into how Evidential Reasoning (ER) approach as the specific Multi-Attribute Decision Making (MADM) method can be used as a type of system assessment technique. The theory and implementation details of ER with an initial case study are presented.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30629/30629.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">28</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">MULTI-OBJECTIVE OPTIMIZATION OF BOTH PUMPING ENERGY AND MAINTENANCE COSTS IN OIL PIPELINE NETWORKS USING GENETIC ALGORITHMS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Ehsan Abbasi and Vahid Garousi</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">This paper proposes an optimization model for the pipeline operation problem using a dual-objective non-dominated sorting genetic algorithm (NSGA-II). One and foremost objective is to minimize pumping energy costs. The second objective is to recognize the pipeline operators’ concern on pumps maintenance costs by reducing the number of times pumps are turned on and off. This is commonly believed as a main source of wear and tear on the pumps. The formulation of the problem is presented in detail and the model is tested on a hypothetical case study (which is based on consultation with two industrial partners). The output results are promising since they would give operators a better understanding of different optimal scenarios on a “Pareto front”. Operators can visually assess several alternatives, and analyse the cost-effectiveness of each scenario in terms of both objective functions.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30638/30638.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">31</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">EVOLUTIONARY ALGORITHMS FOR SOLVING QUASI GEOMETRIC PROGRAMMING PROBLEMS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">R. Toscano and P. Lyonnet</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">In this paper we introduce an extension of standard geometric programming (GP) problems which we call quasi geometric programming (QGP) problems. The consideration of this particular kind of nonlinear and possibly non smooth optimization problem is motivated by the fact that many engineering problems can be formulated as a QGP. However, solving a QGP remains a difficult task due to its intrinsic non-convex nature. This is why we investigate the possibility of using evolutionary algorithms (EA) for solving a QGP problem. The main idea developed in this paper is to combine evolutionary algorithms with interior point method for efficiently solving QGP problems. An interesting feature of the proposed approach is that it does not need to develop specific program solver and works well with any existing EA and available solver able to solve conventional GP. Some considerations on the robustness issue are also presented. Numerical experiments are used to validate the proposed method.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30719/30719.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">35</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">TRAIN TIMETABLE GENERATION USING GENETIC ALGORITHMS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">C. J. Hinde, M. S. Withall, I. W. Phillips, T. W. Jackson, S. Brown and R. Watson</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">The scheduling of railway trains has been a research problem for many years. Many of the choices required are not known a priori and require exploration of the problem to determine them. A modular Genetic system was designedmake the evaluation function and preparation of the timetable tractable. The Genetic system consists of a Genome, split into Chromosomes so the extra choices that become known throughout the evolution can be added to the Chromosomes. A weighted fitness function and a multiobjective non-dominated fitness function were tried, and then partial objective ranking was added. The system has tackled a mixture of problems has produced promising results.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30748/30748.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">36</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">USING SELF-SIMILARITY TO ADAPT EVOLUTIONARY ENSEMBLES FOR THE DISTRIBUTED CLASSIFICATION OF DATA STREAMS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Clara Pizzuti and Giandomenico Spezzano</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Distributed stream-based classification methods have many important applications such as sensor data analysis, network security, and business intelligence. An important challenge is to address the issue of concept drift in the data stream environment, which is not easily handled by the traditional learning techniques. This paper presents a Genetic Programming (GP) based boosting ensemble method for the classification of distributed streaming data able to adapt in presence of concept drift. The approach handles flows of data coming from multiple locations by building a global model obtained by the aggregation of the local models coming from each node. The algorithm uses a fractal dimension-based change detection strategy, based on self-similarity of the ensemble behavior, that permits the capture of time-evolving trends and patterns in the stream, and to reveal changes in evolving data streams. Experimental results on a real life data set show the validity of the approach in maintaining an accurate and up-to-date GP ensemble.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30749/30749.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">41</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">HYBRID POPULATION-BASED INCREMENTAL LEARNING TO ASSIGN TERMINALS TO CONCENTRATORS </h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Eug&#233;nia Moreira Bernardino, Anabela Moreira Bernardino, Juan Manuel S&#225;nchez-P&#233;rez, Juan Antonio G&#243;mez-Pulido and Miguel Angel Vega-Rodr&#237;guez</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">In the last decade, we have seen a significant growth in communication networks. In centralised communication networks, a central computer serves several terminals or workstations. In large networks, some concentrators are used to increase the network efficiency. A collection of terminals is connected to a concentrator and each concentrator is connected to the central computer. In this paper we propose a Hybrid Population-based Incremental Learning (HPBIL) to assign terminals to concentrators. We use this algorithm to determine the minimum cost to form a network by connecting a given collection of terminals to a given collection of concentrators. We show that HPBIL is able to achieve good solutions, improving the results obtained by previous approaches.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30763/30763.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">48</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">GENETIC EVOLUTION OF ‘SORTING’ PROGRAMS THROUGH A NOVEL GENOTYPE-PHENOTYPE MAPPING </h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Daniela Xhemali, Christopher J. Hinde and Roger G. Stone</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">This paper presents an adaptable genetic evolutionary system, which includes an innovative approach to mapping genotypes to phenotypes through XML rules. The evolutionary system was originally created to evolve Regular Expressions (REs) to automate the extraction of web information. However, the system has been adapted to work with a completely different domain – Complete Software Programs – to demonstrate the flexibility of this approach. Specifically, the paper concentrates on the evolution of ‘Sorting’ programs. Experiments show that our evolutionary system is successful and can be adapted to work for challenging domains with minimum effort.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30784/30784.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">52</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">OPTIMIZING GENETIC ALGORITHM PARAMETERS FOR A STOCHASTIC GAME</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">James Glenn</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Can’t Stop is a jeopardy stochastic game played on an octagonal game board with four six-sided dice. Previous work generalized a well-known heuristic strategy for the solitaire game and attempted to optimize the parameters of the generalized strategy using a genetic algorithm (GA). There were two challenges in that optimization process: first, the stochastic nature of the game results in a very noisy fitness function; second, the fitness function is computationally expensive. In this work we continue the optimization process for the heuristic strategy by optimizing the GA: for a fixed number of fitness function evaluations, we investigate the effects of varying the GA parameters (in particular the population size and number of generations), which in turn affect the number of samples per individual and thus noise as well. We also examine different sampling schedules; our schedules are unique in that selecting the final champion is considered a schedulable phase. The GA parameters are first optimized on an easy-to-compute test function. The resulting GA parameters are effective on the original problem and as a result we obtain an improved heuristic strategy for Can’t Stop.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30791/30791.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">61</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">GENETIC ALGORITHM BASED ON DIFFERENTIAL EVOLUTION WITH VARIABLE LENGTH - Runoff Prediction on an Artificial Basin</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Ana Freire, Vanessa Aguiar-Pulido, Juan R. Rabu&#241;al and Marta Garrido</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Differential evolution is a successful approach to solve optimization problems. The way it performs the creation of the individual allows a spontaneous self-adaptability to the function. In this paper, a new method based on the differential evolution paradigm has been developed. An innovative feature has been added: the variable length of the genotype, so this approach can be applied to predict special time series. This approach has been tested over rainfall data for real-time prediction of changing water levels on an artificial basin. This way, a flood prediction system can be obtained.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30814/30814.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">64</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">OPTIMIZING B-SPLINES USING GENETIC ALGORITHMS APPLIED TO AIR-TRAFFIC CONFLICT RESOLUTION</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Clement Peyronne, Daniel Delahaye, Marcel Mongeau and Laurent Lapasset</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Conflict resolution has always been a sensitive matter in air-traffic management. Current European projects aim partial or total automation of air traffic control to deal with the constant growth of air traffic. Technological advances on flight management system allows us to consider an automatic conflict resolution using continuous trajectories. In this paper, we present a new methodology that, first, relies on B-splines to model trajectories, secondly models air-traffic conflict resolution as an optimization problem whose decision variables are the spline control points. Finally, we use genetic algorithms to tackle this optimization problem in order to generate optimal conflict-free situations.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30828/30828.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">69</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">NANOSTRUCTURES THERMAL EMISSION OPTIMIZATION USING GENETIC ALGORITHMS AND PARTICLE SWARMS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">E. Nefzaoui, J. Drevillon and K. Joulain</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Nanotechnologies and nanofabrication techniques provided unmeasureable possibilities to control intrinsic microscopic features of materials and structures in the last years. In particular, materials optical properties and light propagation control have been some of the most challenging problems due to their various application possiblities. The present investigation shows that temporally coherent thermal sources have been successfully designed and optimized with evolutionary optimization methods such as genetic algorithms and particle swarms. This lead to a bilayer structure of germanium and silicon carbide, which is, to our knowledge, the simplest existing structure with such properties.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30838/30838.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">70</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">OPTIMAL VIABLE PATH SEARCH FOR A CHEESE RIPENING PROCESS USING A MULTI-OBJECTIVE EA</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Salma Mesmoudi, Nathalie Perrot, Romain Reuillon, Paul Bourgine and Evelyne Lutton</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Viability theory is a very attractive theoretical approach for the modeling of complex dynamical systems. However, its scope of application is limited due to the high computational power it necessitates. Evolutionary computation is a convenient way to address some issues related to this theory. In this paper, we present a multiobjective evolutionary approach to address the optimisation problem related to the computation of optimal command profiles of a complex process. The application we address here is a real size problem from dairy industry, the modeling of a Camembert cheese ripening process. We have developed a parallel implementation of a multiobjective EA that has produced a Pareto front of optimal control profiles (or trajectories), with respect to four objectives. The Pareto front was then analysed by an expert who selected a interesting compromise, yielding a new control profile that seems promising for industrial applications.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30839/30839.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">76</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">HYBRID PARAMETER-LESS EVOLUTIONARY ALGORITHM IN PRODUCTION PLANNING</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Vida Vukašinovič, Peter Korošec and Gregor Papa</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">In the real-world production planning problems there are many constraints that need to be considered. Usually, these constraints and interdependent and the optimization algorithms has to efficiently solve that. This paper presents the hybrid parameter-less evolutionary algorithm used for construction of an optimal production plan. The algorithm is based on genetic algorithm, but is modified to work without the parameter setting. All algorithm control parameters are automatically determined during the optimization. The algorithm was able to solve the constraints and to make an optimal production plan. Additionally, we evaluated the influence of different ratios of orders with fixed deadlines on the performance of the algorithm. The used algorithm can successfully solve also these additional constraints.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30850/30850.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">79</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">TWO ALGORITHMS OF THE EXTENDED PSO FAMILY</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Juan Luis Fern&#225;ndez-Mart&#237;nez and Esperanza Garcia-Gonzalo</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">In this paper we present two novel algorithms belonging to the extended family of PSO: the PP-GPSO and the RR-GPSO. These algorithms correspond respectively to progressive and regressive discretizations in acceleration and velocity. PP-GPSO has the same velocity update than GPSO, but the velocities used to update the trajectories are delayed one iteration, thus, PP-GPSO acts as a Jacobi system updating positions and velocities at the same time. RR-GPSO is similar to a GPSO with stochastic constriction factor. Both versions have a very different behavior from GPSO and the other family members introduced in the past: CC-GPSO and CP-GPSO. The numerical comparison of all the family members has shown that RR-GPSO has the greatest convergence rate and its good parameter sets can be calculated analytically since they are along a straight line located in the first order stability region. Conversely PP-GPSO is a more explorative version.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30857/30857.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">81</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">REAL-TIME TRAJECTORY MODIFICATION BASED ON B&#201;ZIER SHAPE DEFORMATION </h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">L. Hilario, N. Mont&#233;s, M. C. Mora and A. Falc&#243;</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">This paper presents a new technique for flexible path planning based on the deformation of a B&#233;zier curve through a field of vectors. This new technique is called B&#233;zier Shape Deformation (BSD). This deformation is computed with a constrained optimization method (Lagrange Multipliers Theorem). The main advantage of this method is how the solution is obtained. A linear system is solved to achieve the result. As a consequence, the deformed curve is computed in a few milliseconds where the linear system can be solved offline if the B&#233;zier curve order is maintained constant during the movement of the robot. This method allows the use of these trajectories in dynamic environments where the computational cost is critical. This technique can be combined with any collision avoidance algorithm that produces a field of vectors. In particular, it is appropriate for artificial potential field methods. At the end of the paper, the presented methodology is combined with an artificial potential fields algorithm recently proposed, the Potential Field Projection method (PFP). This method is based on the combination of the classical Potential Fields method and the multi-rate Kalman filter estimation and takes into account the uncertainties on locations, the future trajectory of the robot and the obstacles and the multi-rate information supplied by sensors. As shown in the simulation results, flexible trajectories for collision avoidance are generated with smooth curves.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30860/30860.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">83</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">EVACUATION SIMULATION WITH LIMITED CAPACITY SINKS - An Evolutionary Approach to Solve the Shelter Allocation and Capacity Assignment Problem in a Multi-agent Evacuation Simulation</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Gunnar Fl&#246;tter&#246;d and Gregor L&#228;mmel</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">We heuristically solve an evacuation problem with limited capacity shelters. An evolutionary learning algorithm is developed for the combined route- and shelter-assignment problem. It is complemented with a heuristic method for the fair minimization of shelter capacities. Different behavioral assumptions “fair” vs. “globally optimal”) are investigated. The proposed approaches are discussed in the context of a real-world tsunami evacuation problem.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30863/30863.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">88</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">PURE CO-EVOLUTION FOR SHAPE NESTING</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Jeffrey Horn</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">We test the effectiveness of an evolutionary algorithm that relies completely on species selection for evolution and on interactions among species to determine fitness. Under Resource-defined Fitness Sharing (RFS), all individuals have the same objective fitness, but they act to reduce their shared fitness through competition for resources. In previous studies, RFS has been used to evolve populations of mutually non-competing (i.e., non-overlapping) shapes on shape nesting problems. In this paper we test the effectiveness of a modified version of RFS, which we call PCSN, against three commercial software packages for shape nesting. PCSN uses species proportions to represent a population, thereby simulating an infinitely large population. With no discovery operators, such as mutation or recombination, evolution consists of selection only, with all species present in the initial population. We show that on some shape nesting problems this approach can outperform some commercial packages. In particular, PCSN nests more circles on a fixed, polygonal substrate than do most of the commercial packages. This might be considered a surprising result, since the algorithm is radically different from any shape nesting algorithms deployed to date. While conventional methods place one shape at a time, the co-evolution approach attempts to place all shapes simultaneously.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30894/30894.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">90</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">AN MOEA-BASED METHOD TO TUNE EA PARAMETERS ON MULTIPLE OBJECTIVE FUNCTIONS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">S. K. Smit, A. E. Eiben and Z. Szl&#225;vik</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">In this paper, we demonstrate the benefits of using a multi-objective approach when tuning the parameters of an Evolutionary Algorithm. To overcome the specific challenges that arise when using a meta-algorithm for parameter tuning on multiple functions, we introduce a new algorithm called the Multi-Function Evolutionary Tuning Algorithm (M-FETA) that is able to approximate the parameter Pareto front effectively. The results of the experiments illustrate how the approximated Parameter Pareto front can be used to gain insights, identify ‘generalists’, and study the robustness of the algorithm to be tuned.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/31062/31062.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">92</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">SPARKLINE HISTOGRAMS FOR COMPARING EVOLUTIONARY OPTIMIZATION METHODS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Ville Tirronen and Matthieu Weber</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Comparing evolutionary optimization methods is a difficult task. As more and more of articles are published in this field, the readers and reviewers are swamped with information that is hard to decipher. We propose the use of sparkline histograms that allow compact representation of test data in a way which is extremely fast to read and more informative than usually given metrics.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/31104/31104.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">97</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">PARISIAN APPROACH - Reducing Computational Effort to Improve SMT Performance by setting Resizable Caches</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Josefa D&#237;az, Francisco Fern&#225;ndez de Vega, J. Ignacio Hidalgo and Oscar Garnica</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Evolutionay Algorithm are techniques widely used in the resolution of complex problems. On the other hand, Simultaneous Multithreading improves the throughput of the processor core taking advantage of Instruction Level Parallelism and Thread Level Parallelism. In this environment adaptation the cache configuration, at runtime according to workloads settings will be improved the processor performance. This improvement is achieved by using resizable caches. In a previous work, we proposed a Genetic Algorithm to find the better cache configurations according to the needs and characteristics of the workloads. However the computational cost needed for the evaluation process is very high. In this paper we propose the use of the Parisian Evolution Approach to improve dynamically reconfigurable cache designs, and reduce the computational cost associated. We study the behavior of a set of benchmarks, taking into account their needs over cache memory hierarchy in each phase of execution, in order to adapt the cache configuration and to increase the number of instructions per cycle. Experimental results show a large saving in computing time and some improvement on the instructions per cycle achieved in previous approaches. </td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/31137/31137.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">98</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">SIMPLE GENETIC ALGORITHM WITH a-SELECTION - Intrinsic System Model, Fixed Points and the Fixed Point Graph</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Andr&#233; Neubauer</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Genetic algorithms (GA) are instances of random heuristic search (RHS) which mimic biological evolution and molecular genetics in simplified form. These random search algorithms can be theoretically described with the help of a deterministic dynamical system model by which the stochastic trajectory of a population can be characterized using a deterministic heuristic function and its fixed points. For practical problem sizes the determination of the fixed points is unfeasible even for the simple genetic algorithm (SGA). The recently introduced simple genetic algorithm with a-selection allows the analytical calculation of the unique fixed points of the dynamical system model. In this paper, an overview of the theoretical results for the simple genetic algorithm with a-selection and its corresponding intrinsic system model is given. Further, the connection to the fixed point graph is illustrated which describes the asymptotic behavior of the simple genetic algorithm. In addition to the theoretical analysis experimental results for the simple genetic algorithm with a-selection, uniform crossover and bitwise mutation are presented.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/31138/31138.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">100</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">ON THE DESIGN OF POPULATIONAL CLUSTERING</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Leonardo Ramos Emmendorfer</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">The application of clustering algorithms for partitioning the population in evolutionary computation is discussed. Specific aspects which characterize this task lead to opportunities which can be explored by the clustering algorithm. A supervised clustering algorithm is described, which illustrates the exploration of those opportunities.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/31142/31142.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">4</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">A GIBBS DISTRIBUTION THAT LEARNS FROM GA DYNAMICS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Manabu Kitagata and Jun-ichi Inoue</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">A general procedure of average-case performance evaluation for population dynamics such as genetic algorithms (GAs) is proposed and its validity is numerically examined. We introduce a learning algorithm of Gibbs distributions from training sets which are gene configurations (strings) generated by GA in order to figure out the statistical properties of GA from the view point of thermodynamics. The learning algorithm is constructed by means of minimization of the Kullback-Leibler information between a parametric Gibbs distribution and the empirical distribution of gene configurations. The formulation is applied to a solvable probabilistic model having multi-valley energy landscapes, namely, the spin glass chain. By using computer simulations, we discuss the asymptotic behaviour of the effective temperature scheduling and the residual energy induced by the GA dynamics.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30471/30471.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">13</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">AN INTEGRATED ARCHITECTURE FOR INFOMOBILITY SERVICES - Advantages of Genetic Algorithms in Real-time Route Planning</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">C. De Castro, G. Leonardi, B. M. Masini and P. Toppan</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">In the field of Intelligent Transportation Systems, a key role is played by efficient route planning services. Such systems have been evolving rapidly, but they still have some restricting drawbacks, such as the lack of a full support of real-time traffic monitoring and the consequent real-time update of the best route suggested. In this paper, an architecture is proposed for the management of dynamic path planning and limitations of traditional search algorithms in these kinds of applications discussed. A variant of the proposed approach is consequently presented, based on the joint use of virus-evolutionary genetic algorithms for real-time route planning and traffic forecasting.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30578/30578.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">14</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">AN INNOVATIVE GA OPTIMIZED INVESTMENT STRATEGY BASED ON A NEW TECHNICAL INDICATOR USING MULTIPLE MAS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Adriano Simoes, Rui Neves and Nuno Horta</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">This paper proposes a new medium/long term investment strategy for stock markets based on a combination of Simple Moving Averages Crossover (SMAC) and Moving Average Derivate (MAD). This strategy is compared with the Buy and Hold, with the Moving Averages Crossover, and with the Moving Average Derivate strategy. The experiments show that the combination of SMAC and MAD outperforms the results of each strategy individually. The presented approach has an average return of investment of 9.0%, compared with the 2.6% return of the Buy and Hold, for the S&amp;P500, FTSE100, DAX30 and NIKKEI225, between 2004 and 2009.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30581/30581.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">15</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">THE CHEMNITZ HYBRID EVOLUTIONARY OPTIMIZATION SYSTEM </h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Ulf Niel&#228;nder</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">This paper introduces the Chemnitz Hybrid Evolutionary Optimization System to the scientific community. CHEOPS is a non-standard, high-performance genetic algorithm framework allowing simple as well as advanced modes of operation. Universal genetic algorithms well-suited for solving both single- and multi-objective optimization problems are still a matter of serious research. The Omni Optimizer was a milestone in that research topic, but now it is dramatically outperformed by CHEOPS in single-objective optimization. The comparison should soon continue, because CHEOPS will be straightforwardly enhanced to solve multi-objective problems as well.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30592/30592.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">30</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">TWO-TIERED RESOLUTION REAL-TIME PATH EVALUATION</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">J. C. F. Allaire, J. M. P. Langlois, G. Labont&#233; and M. Tarbouchi</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Unmanned aerial vehicles (UAV) are subject to unforeseen events in harsh environment. Embedded autonomous real-time path re-planning is a possible solution to this issue. Evolutionary algorithms have shown to be an excellent means to optimise the generation of UAV paths but their slow iterative process prevent them to be used for real-time computation. Part of that challenge resides in the computational demanding task of path feasibility evaluation, where each single segment of the generated path needs to be certified ‘collision free’. State of the art algorithms require computationally demanding pre-processing of the world representation, which is too time-consuming for real-time computation. Taking advantage of advancements in the Field Programmable Gate Array (FPGA) technology, this work has evaluated a new feasibility evaluation technique that analyses the path directly from the raw data of the world representation, using two levels of resolution: a high resolution map used close to the UAV, and a low resolution map used far from the UAV. This technique has been implemented on an FPGA and tested in simulation. Timing results (more than 500 map cells evaluated within 5 μs) demonstrate that the two-tiered resolution technique opens up avenues to real-time UAV path re-planning using evolutionary algorithms.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30708/30708.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">34</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">OPTIMIZATION OF A STEAM TURBINE GUIDE VANE BY END WALL CONTOURING USING EVOLUTIONARY ALGORITHMS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Nils Moser and Franz Joos</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">The subject of this paper is the optimization of a guide vane of steam turbine control stage by end wall contouring. The investigated control stage is derived from an existing industrial steam turbine design. The end wall contour is varied in rotational direction within specified restrictions by an evolutionary algorithm. The algorithm is directly connected to a mesh generator and a Computational Fluid Dynamics (CFD) solver. The optimization goal is the reduction of the total pressure loss over the guide vane. The geometry of the rotor blade has been retained unchanged. The flow field of the varied stage is compared with the baseline geometry. The optimum candidates are further investigated with CFD simulations for different operating point scenarios. Numerical results show that the axisymetric end wall contouring of the nozzle has a considerable effect on the loss behavior of the nozzle over a wide range of pressure ratios. Due to end wall contouring the boundary layer in the nozzle is significantly affected which results in a significant reduction of the secondary flow effects in the guide vanes.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30746/30746.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">42</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">A BIASED RANDOM KEY GENETIC ALGORITHM APPROACH FOR UNIT COMMITMENT PROBLEM</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Lu&#237;s A. C. Roque, Dalila B. M. M. Fontes and Fernando A. C. C. Fontes</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">A Biased Random Key Genetic Algorithm (BRKGA) is proposed to find solutions for the unit commitment problem. In this problem, one wishes to schedule energy production on a given set of thermal generation units in order to meet energy demands at minimum cost, while satisfying a set of technological and spinning reserve constraints. In the BRKGA, solutions are encoded by using random keys, which are represented as vectors of real numbers in the interval [0,1]. The GA proposed is a variant of the random key genetic algorithm, since bias is introduced in the parent selection procedure, as well as in the crossover strategy. Tests have been performed on benchmark large-scale power systems of up 100 units for a 24 hours period. The results obtained have shown the proposed methodology to be an effective and efficient tool for finding solutions to large-scale unit commitment problems. Furthermore, form the comparisons made it can be concluded that the results produced improve upon the best known solutions.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30767/30767.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">43</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">WAVELENGTH CONVERTERS PLACEMENT IN ALL OPTICAL NETWORKS USING DIFFERENTIAL EVOLUTION OPTIMIZATION </h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Gerardo Casta&#241;&#243;n, Fernando Lezama and Ana Mar&#237;a Sarmiento</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Placement of wavelength converters in an arbitrary mesh network is known to belong to the class of NP-complete problems. So far, this problem has been solved by heuristic strategies or by the application of optimization tools such as genetic algorithms. . In this paper we introduce the application of differential evolution (DE) to the placement of wavelength converters problem to find the optimal solution. Many comparative studies confirm its robustness and efficiency, and in many cases DE outperforms many other well known evolutionary computational approaches in terms of convergence speed and quality of solutions. The major advantage of the DE algorithm rests in the fact that it does not need to build up a search tree or to create auxiliary graphs to find the optimal solutions. Furthermore, the method typically requires few control parameters, and the computed results show that only a small population is needed to obtain the optimal solutions of the placement of wavelength converters problem in an arbitrary network. We present an experiment that demonstrates the effectiveness and efficiency of the proposed evolutionary algorithm.</td> </tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">46</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">INTEGRATED OPTIMIZATION OF FUNCTIONAL AND LAYOUT DESIGNS BASED ON GENETIC ALGORITHM - Consideration of Carbon Emission troughout Product’s Lifecycle</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Masakazu Kobayashi and Masatake Higashi</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">In our previous research, the integrated optimization of functional / layout designs based on genetic algorithm was developed for supporting conceptual design phase. This method can optimize a functional structure and a parts layout simultaneously by evaluating performance, cost and size. In this paper, we now focus on consideration of lifecycle characteristics in response to rise of environmental awareness in recent years and combine our previous integrated method with lifecycle assessment (LCA) in order to enable creation of product concepts that balance various characteristics including lifecycle ones at a higher level. This paper also shows an application of the proposed method to a personal computer design and discusses the effect of consideration of lifecycle characteristics during conceptual optimization.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30772/30772.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">58</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">A MODIFIED MULTI-POPULATION GENETIC ALGORITHM FOR PARAMETER IDENTIFICATION OF CULTIVATION PROCESS MODELS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Olympia N. Roeva, Kalin Kosev and Tanya V. Trenkova</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">In this work a modified multi-population genetic algorithm (MPGA) without the performance of the mutation operator is proposed. The idea is to reduce the convergence time and therefore to increase the identification procedure effectiveness for on-line application of the algorithm. Modified MPGA, classical multipopulation GA and two other modifications are tested for parameter identification problem of an E. coli non-linear fed-batch cultivation model. The contribution of each modification measure to the performance improvement is demonstrated. The obtained results show that the highest accuracy for parameter identification of the considered model is achieved with the multipopulation GA with Modification 1. The best calculation time is shown by the multipopulation GA without mutation.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30806/30806.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">67</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">COMPARISON OF METAHEURISTICS FOR WORKFORCE DISTRIBUTION IN MULTI-SKILL CALL CENTRES</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">David Mill&#225;n-Ruiz, J. Ignacio Hidalgo and Josefa D&#237;az</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Call centre technology requires the assignment of a large volume of incoming calls to agents with the required skills to process them. In order to determine the right assignment among incoming calls and agents for a real production environment, a comparative study of meta-heuristics has been carried out. The aim of this study is to implement and empirically compare various representative meta-heuristics, which represent distinct search strategies to reach accurate, feasible solutions, for two different instances of the workforce distribution problem. This study points out how memetic algorithms can outperform other acknowledged meta-heuristics for two different problem instances from a real multi-skill call centre from one of the world&#39;s largest telecommunications companies.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30835/30835.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">73</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">LAMARCKIAN EVOLUTION OF NEURAL NETWORKS APPLIED TO KEYSTROKE DYNAMICS</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Paulo Henrique Pisani and Silvio do Lago Pereira</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">The pace of computing and communications development has contributed to an increased data exposure and, consequently, to the rise of an issue known as identity theft. By applying user profiling, which analyzes the user behavior in order to perform a continuous authentication, protection of digital identities can be enhanced. Among the possible features to be analyzed, this paper focuses on keystroke dynamics, something that cannot be easily stolen. As keystroke dynamics involves dealing with noisy data, it was chosen a neural network to perform the pattern recognition task. However, traditional neural network training algorithms are bound to get trapped in local minimum, reducing the learning ability. This work draws a comparison between backpropagation and two hybrid approaches based on evolutionary training, for the task of keystroke dynamics. Differently from most evolutionary algorithms based on Darwinism, this work also studies Lamarckian evolutionary algorithms that, although not being biologically plausible, attained promising results in the tests.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30845/30845.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">78</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">THE ROLE OF KEEPING “SEMANTIC BLOCKS” INVARIANT - Effects in Linear Genetic Programming Performance</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Marina de la Cruz Echeand&#237;a, Alba Mart&#237;n L&#225;zaro, Alfonso Ortega de la Puente, Jos&#233; Luis Monta&#241;a Arn&#225;iz and C&#233;sar L. Alonso</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">This paper is focused on two different approaches (previously proposed by the authors) that perform better than Genetic Programming in typical symbolic regression problems: straight-line program genetic programming (SLP-GP) and evolution with attribute grammars (AGE). Both approaches have different characteristics. One of themost important is that SLP-GP keeps semantic blocks invariant (the crossover operator always exchanges complete subexpressions). In this paper we compare both methods and study the possible effect on their performance of keeping these blocks invariant.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30854/30854.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">82</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">A GENETIC ALGORITHM WITH A MULTI-LAYERED GENOTYPE-PHENOTYPE MAPPING</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Seamus Hill and Colm O&#39;Riordan</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">In this paper we investigate the introduction of a multiple-layer genotype-phenotype mapping to a Genetic Algorithm (GA) which attempts to mimic more closely, the effects of nature. The motivation for introducing multiple-layers into the genotype-phenotype mapping is to create a many-to-one genotype-phenotype mapping. The paper compares a traditional GA with a GA containing a multi-layered genotype-phenotype mapping using a number of well understood problems in an attempt to illustrate the potential benefits of including the multilayered mapping. Initial findings suggest that the multi-layered mapping between the genotype-phenotype used in conjunction with a binary representation outperforms existing traditional GA approaches on well known problems, while still allowing the use well understood genetic operators.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/30862/30862.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">96</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">USING UNIFORM CROSSOVER TO REFINE SIMULATED ANNEALING SOLUTIONS FOR AUTOMATIC DESIGN OF SPATIAL LAYOUTS </h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Fadratul Hafinaz Hassan and Allan Tucker</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">The ease of movement of people inside a public space is highly impacted by the public space layout itself. For example, the flow of a large number of people should be smooth in a well designed public space such as a stadium or hospital. In extreme cases, people might crush to death during emergency evacuations in poorly designed spaces. It is vital that design takes into account the smooth flow of pedestrians. In this paper we describe an initial exploration in using models of pedestrian flow combined with heuristic search to assist in the automatic design for spatial layout. A two-way pedestrian flow system is simulated and heuristic search techniques (genetic algorithm, simulated annealing and hill climbing) are used to find feasible spatial layouts based upon the generated statistics with promising results.</td> </tr><tr> <td class="rowTitle"><a href="https://www.scitepress.org/Papers/2010/31135/31135.pdf">Download</a></td></tr> </table> <hr/> <table> <tr> <td class="rowTitle">Paper Nr:</td> <td class="rowContent">99</td> </tr> <tr> <td class="rowTitle">Title:</td> <td class="rowContent"><h3 class="paperTitle">TOWARDS MODEL-DRIVEN DATA WAREHOUSE AUTOMATION USING MACHINE LEARNING</h3></td> </tr> <tr> <td class="rowTitle">Authors:</td> <td class="rowContent"><h4 class="authors">Moez Essaidi and Aomar Osmani</h4></td> </tr> <tr> <td class="rowTitle">Abstract:</td> <td class="rowContent">Model-driven data warehouse aims to apply the model-driven engineering approach to derive the data warehouse component. Transformations design is an essential task during the model-driven engineering process. However, Transformations development is a very hard task and needs serious skills. Model transformation by example is a novel approach in model-driven software engineering to derive transformation rules from an initial set of mapping examples. This paper aims to introduce our research effort to automate model-driven data warehouse development using the model transformation by example approach.</td> </tr> </table> <hr/> </div> </span> </div> </form> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10