PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPCEtLU5ld1BhZ2UtLT4NCjxIVE1MPg0KPEhFQUQ+DQo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFRodSBOb3YgMjIgMTc6MTM6MDAgRVNUIDIwMDcgLS0+DQo8VElUTEU+DQpYYWxhbi1KYXZhIDIuNy4xOiBJbnRlcmZhY2UgIFhQYXRoUmVzdWx0DQo8L1RJVExFPg0KPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPg0KPC9IRUFEPg0KPEJPRFkgQkdDT0xPUj0id2hpdGUiPg0KDQo8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+DQo8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+DQo8VFI+DQo8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+DQo8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4NCiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvWFBhdGhSZXN1bHQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDwvVFI+DQo8L1RBQkxFPg0KPC9URD4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPg0KPC9FTT4NCjwvVEQ+DQo8L1RSPg0KDQo8VFI+DQo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPg0KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhOU1Jlc29sdmVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOw0KJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7DQombmJzcDs8QSBIUkVGPSJYUGF0aFJlc3VsdC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPFRSPg0KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4NCiAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4NCg0KPEhSPg0KPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPg0KPEgyPg0KPEZPTlQgU0laRT0iLTEiPg0Kb3JnLnczYy5kb20ueHBhdGg8L0ZPTlQ+DQo8QlI+DQpJbnRlcmZhY2UgIFhQYXRoUmVzdWx0PC9IMj4NCjxIUj4NCjxETD4NCjxEVD5wdWJsaWMgaW50ZXJmYWNlIDxCPlhQYXRoUmVzdWx0PC9CPjwvREw+DQoNCjxQPg0KVGhlIDxjb2RlPlhQYXRoUmVzdWx0PC9jb2RlPiBpbnRlcmZhY2UgcmVwcmVzZW50cyB0aGUgcmVzdWx0IG9mIHRoZSAKIGV2YWx1YXRpb24gb2YgYW4gWFBhdGggMS4wIGV4cHJlc3Npb24gd2l0aGluIHRoZSBjb250ZXh0IG9mIGEgcGFydGljdWxhciAKIG5vZGUuIFNpbmNlIGV2YWx1YXRpb24gb2YgYW4gWFBhdGggZXhwcmVzc2lvbiBjYW4gcmVzdWx0IGluIHZhcmlvdXMgCiByZXN1bHQgdHlwZXMsIHRoaXMgb2JqZWN0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIGRpc2NvdmVyIGFuZCBtYW5pcHVsYXRlIAogdGhlIHR5cGUgYW5kIHZhbHVlIG9mIHRoZSByZXN1bHQuCiA8cD5TZWUgYWxzbyB0aGUgPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9OT1RFLURPTS1MZXZlbC0zLVhQYXRoLTIwMDQwMjI2Jz5Eb2N1bWVudCBPYmplY3QgTW9kZWwgKERPTSkgTGV2ZWwgMyBYUGF0aCBTcGVjaWZpY2F0aW9uPC9hPi4NCjxQPg0KPEhSPg0KDQo8UD4NCjwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4NCg0KDQo8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+DQoNCjxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+c3RhdGljJm5ic3A7c2hvcnQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhSZXN1bHQuaHRtbCNBTllfVFlQRSI+QU5ZX1RZUEU8L0E+PC9CPjwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBjb2RlIGRvZXMgbm90IHJlcHJlc2VudCBhIHNwZWNpZmljIHR5cGUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPnN0YXRpYyZuYnNwO3Nob3J0PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL3hwYXRoL1hQYXRoUmVzdWx0Lmh0bWwjQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEUiPkFOWV9VTk9SREVSRURfTk9ERV9UWVBFPC9BPjwvQj48L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSByZXN1bHQgaXMgYSA8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNiNub2RlLXNldHMnPm5vZGUgc2V0PC9hPiBhcyBkZWZpbmVkIGJ5IFs8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNic+WFBhdGggMS4wPC9hPl0gYW5kIAogd2lsbCBiZSBhY2Nlc3NlZCBhcyBhIHNpbmdsZSBub2RlLCB3aGljaCBtYXkgYmUgPGNvZGU+bnVsbDwvY29kZT5pZiAKIHRoZSBub2RlIHNldCBpcyBlbXB0eS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+c3RhdGljJm5ic3A7c2hvcnQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhSZXN1bHQuaHRtbCNCT09MRUFOX1RZUEUiPkJPT0xFQU5fVFlQRTwvQT48L0I+PC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVzdWx0IGlzIGEgPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYjYm9vbGVhbnMnPmJvb2xlYW48L2E+IGFzIGRlZmluZWQgYnkgWzxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2Jz5YUGF0aCAxLjA8L2E+XS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+c3RhdGljJm5ic3A7c2hvcnQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhSZXN1bHQuaHRtbCNGSVJTVF9PUkRFUkVEX05PREVfVFlQRSI+RklSU1RfT1JERVJFRF9OT0RFX1RZUEU8L0E+PC9CPjwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlc3VsdCBpcyBhIDxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2I25vZGUtc2V0cyc+bm9kZSBzZXQ8L2E+IGFzIGRlZmluZWQgYnkgWzxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2Jz5YUGF0aCAxLjA8L2E+XSBhbmQgCiB3aWxsIGJlIGFjY2Vzc2VkIGFzIGEgc2luZ2xlIG5vZGUsIHdoaWNoIG1heSBiZSA8Y29kZT5udWxsPC9jb2RlPiBpZiAKIHRoZSBub2RlIHNldCBpcyBlbXB0eS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+c3RhdGljJm5ic3A7c2hvcnQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhSZXN1bHQuaHRtbCNOVU1CRVJfVFlQRSI+TlVNQkVSX1RZUEU8L0E+PC9CPjwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlc3VsdCBpcyBhIDxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2I251bWJlcnMnPm51bWJlcjwvYT4gYXMgZGVmaW5lZCBieSBbPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYnPlhQYXRoIDEuMDwvYT5dLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT5zdGF0aWMmbmJzcDtzaG9ydDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS94cGF0aC9YUGF0aFJlc3VsdC5odG1sI09SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFIj5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRTwvQT48L0I+PC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVzdWx0IGlzIGEgbm9kZSBzZXQgYXMgZGVmaW5lZCBieSBbPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYnPlhQYXRoIDEuMDwvYT5dIHRoYXQgCiB3aWxsIGJlIGFjY2Vzc2VkIGl0ZXJhdGl2ZWx5LCB3aGljaCB3aWxsIHByb2R1Y2UgZG9jdW1lbnQtb3JkZXJlZCAKIG5vZGVzLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT5zdGF0aWMmbmJzcDtzaG9ydDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS94cGF0aC9YUGF0aFJlc3VsdC5odG1sI09SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFIj5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRTwvQT48L0I+PC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVzdWx0IGlzIGEgPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYjbm9kZS1zZXRzJz5ub2RlIHNldDwvYT4gYXMgZGVmaW5lZCBieSBbPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYnPlhQYXRoIDEuMDwvYT5dIHRoYXQgCiB3aWxsIGJlIGFjY2Vzc2VkIGFzIGEgc25hcHNob3QgbGlzdCBvZiBub2RlcyB0aGF0IHdpbGwgYmUgaW4gb3JpZ2luYWwgCiBkb2N1bWVudCBvcmRlci48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+c3RhdGljJm5ic3A7c2hvcnQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhSZXN1bHQuaHRtbCNTVFJJTkdfVFlQRSI+U1RSSU5HX1RZUEU8L0E+PC9CPjwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlc3VsdCBpcyBhIDxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2I3N0cmluZ3MnPnN0cmluZzwvYT4gYXMgZGVmaW5lZCBieSBbPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYnPlhQYXRoIDEuMDwvYT5dLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT5zdGF0aWMmbmJzcDtzaG9ydDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS94cGF0aC9YUGF0aFJlc3VsdC5odG1sI1VOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEUiPlVOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU8L0E+PC9CPjwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlc3VsdCBpcyBhIDxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2I25vZGUtc2V0cyc+bm9kZSBzZXQ8L2E+IGFzIGRlZmluZWQgYnkgWzxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2Jz5YUGF0aCAxLjA8L2E+XSB0aGF0IAogd2lsbCBiZSBhY2Nlc3NlZCBpdGVyYXRpdmVseSwgd2hpY2ggbWF5IG5vdCBwcm9kdWNlIG5vZGVzIGluIGEgCiBwYXJ0aWN1bGFyIG9yZGVyLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT5zdGF0aWMmbmJzcDtzaG9ydDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS94cGF0aC9YUGF0aFJlc3VsdC5odG1sI1VOT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUiPlVOT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU8L0E+PC9CPjwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlc3VsdCBpcyBhIDxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2I25vZGUtc2V0cyc+bm9kZSBzZXQ8L2E+IGFzIGRlZmluZWQgYnkgWzxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2Jz5YUGF0aCAxLjA8L2E+XSB0aGF0IAogd2lsbCBiZSBhY2Nlc3NlZCBhcyBhIHNuYXBzaG90IGxpc3Qgb2Ygbm9kZXMgdGhhdCBtYXkgbm90IGJlIGluIGEgCiBwYXJ0aWN1bGFyIG9yZGVyLjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCiZuYnNwOw0KPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhSZXN1bHQuaHRtbCNnZXRCb29sZWFuVmFsdWUoKSI+Z2V0Qm9vbGVhblZhbHVlPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZhbHVlIG9mIHRoaXMgYm9vbGVhbiByZXN1bHQuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhSZXN1bHQuaHRtbCNnZXRJbnZhbGlkSXRlcmF0b3JTdGF0ZSgpIj5nZXRJbnZhbGlkSXRlcmF0b3JTdGF0ZTwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NpZ25pZmllcyB0aGF0IHRoZSBpdGVyYXRvciBoYXMgYmVjb21lIGludmFsaWQuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2RvdWJsZTwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS94cGF0aC9YUGF0aFJlc3VsdC5odG1sI2dldE51bWJlclZhbHVlKCkiPmdldE51bWJlclZhbHVlPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZhbHVlIG9mIHRoaXMgbnVtYmVyIHJlc3VsdC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7c2hvcnQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhSZXN1bHQuaHRtbCNnZXRSZXN1bHRUeXBlKCkiPmdldFJlc3VsdFR5cGU8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIGNvZGUgcmVwcmVzZW50aW5nIHRoZSB0eXBlIG9mIHRoaXMgcmVzdWx0LCBhcyBkZWZpbmVkIGJ5IHRoZSB0eXBlIAogY29uc3RhbnRzLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwiPk5vZGU8L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL3hwYXRoL1hQYXRoUmVzdWx0Lmh0bWwjZ2V0U2luZ2xlTm9kZVZhbHVlKCkiPmdldFNpbmdsZU5vZGVWYWx1ZTwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB2YWx1ZSBvZiB0aGlzIHNpbmdsZSBub2RlIHJlc3VsdCwgd2hpY2ggbWF5IGJlIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhSZXN1bHQuaHRtbCNnZXRTbmFwc2hvdExlbmd0aCgpIj5nZXRTbmFwc2hvdExlbmd0aDwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBudW1iZXIgb2Ygbm9kZXMgaW4gdGhlIHJlc3VsdCBzbmFwc2hvdC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS94cGF0aC9YUGF0aFJlc3VsdC5odG1sI2dldFN0cmluZ1ZhbHVlKCkiPmdldFN0cmluZ1ZhbHVlPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZhbHVlIG9mIHRoaXMgc3RyaW5nIHJlc3VsdC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sIj5Ob2RlPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS94cGF0aC9YUGF0aFJlc3VsdC5odG1sI2l0ZXJhdGVOZXh0KCkiPml0ZXJhdGVOZXh0PC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SXRlcmF0ZXMgYW5kIHJldHVybnMgdGhlIG5leHQgbm9kZSBmcm9tIHRoZSBub2RlIHNldCBvciAKIDxjb2RlPm51bGw8L2NvZGU+aWYgdGhlcmUgYXJlIG5vIG1vcmUgbm9kZXMuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCI+Tm9kZTwvQT48L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhSZXN1bHQuaHRtbCNzbmFwc2hvdEl0ZW0oaW50KSI+c25hcHNob3RJdGVtPC9BPjwvQj4oaW50Jm5ic3A7aW5kZXgpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSA8Y29kZT5pbmRleDwvY29kZT50aCBpdGVtIGluIHRoZSBzbmFwc2hvdCBjb2xsZWN0aW9uLjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCiZuYnNwOw0KPFA+DQoNCjwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+DQo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4NCjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPg0KPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQoNCjxBIE5BTUU9IkFOWV9UWVBFIj48IS0tIC0tPjwvQT48SDM+DQpBTllfVFlQRTwvSDM+DQo8UFJFPg0KcHVibGljIHN0YXRpYyBmaW5hbCBzaG9ydCA8Qj5BTllfVFlQRTwvQj48L1BSRT4NCjxETD4NCjxERD5UaGlzIGNvZGUgZG9lcyBub3QgcmVwcmVzZW50IGEgc3BlY2lmaWMgdHlwZS4gQW4gZXZhbHVhdGlvbiBvZiBhbiBYUGF0aCAKIGV4cHJlc3Npb24gd2lsbCBuZXZlciBwcm9kdWNlIHRoaXMgdHlwZS4gSWYgdGhpcyB0eXBlIGlzIHJlcXVlc3RlZCwgCiB0aGVuIHRoZSBldmFsdWF0aW9uIHJldHVybnMgd2hhdGV2ZXIgdHlwZSBuYXR1cmFsbHkgcmVzdWx0cyBmcm9tIAogZXZhbHVhdGlvbiBvZiB0aGUgZXhwcmVzc2lvbi4gCiA8YnI+SWYgdGhlIG5hdHVyYWwgcmVzdWx0IGlzIGEgbm9kZSBzZXQgd2hlbiA8Y29kZT5BTllfVFlQRTwvY29kZT4gd2FzIAogcmVxdWVzdGVkLCB0aGVuIDxjb2RlPlVOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU8L2NvZGU+IGlzIGFsd2F5cyAKIHRoZSByZXN1bHRpbmcgdHlwZS4gQW55IG90aGVyIHJlcHJlc2VudGF0aW9uIG9mIGEgbm9kZSBzZXQgbXVzdCBiZSAKIGV4cGxpY2l0bHkgcmVxdWVzdGVkLjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9Ik5VTUJFUl9UWVBFIj48IS0tIC0tPjwvQT48SDM+DQpOVU1CRVJfVFlQRTwvSDM+DQo8UFJFPg0KcHVibGljIHN0YXRpYyBmaW5hbCBzaG9ydCA8Qj5OVU1CRVJfVFlQRTwvQj48L1BSRT4NCjxETD4NCjxERD5UaGUgcmVzdWx0IGlzIGEgPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYjbnVtYmVycyc+bnVtYmVyPC9hPiBhcyBkZWZpbmVkIGJ5IFs8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNic+WFBhdGggMS4wPC9hPl0uIAogRG9jdW1lbnQgbW9kaWZpY2F0aW9uIGRvZXMgbm90IGludmFsaWRhdGUgdGhlIG51bWJlciwgYnV0IG1heSBtZWFuIAogdGhhdCByZWV2YWx1YXRpb24gd291bGQgbm90IHlpZWxkIHRoZSBzYW1lIG51bWJlci48L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJTVFJJTkdfVFlQRSI+PCEtLSAtLT48L0E+PEgzPg0KU1RSSU5HX1RZUEU8L0gzPg0KPFBSRT4NCnB1YmxpYyBzdGF0aWMgZmluYWwgc2hvcnQgPEI+U1RSSU5HX1RZUEU8L0I+PC9QUkU+DQo8REw+DQo8REQ+VGhlIHJlc3VsdCBpcyBhIDxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2I3N0cmluZ3MnPnN0cmluZzwvYT4gYXMgZGVmaW5lZCBieSBbPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYnPlhQYXRoIDEuMDwvYT5dLiAKIERvY3VtZW50IG1vZGlmaWNhdGlvbiBkb2VzIG5vdCBpbnZhbGlkYXRlIHRoZSBzdHJpbmcsIGJ1dCBtYXkgbWVhbiAKIHRoYXQgdGhlIHN0cmluZyBubyBsb25nZXIgY29ycmVzcG9uZHMgdG8gdGhlIGN1cnJlbnQgZG9jdW1lbnQuPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iQk9PTEVBTl9UWVBFIj48IS0tIC0tPjwvQT48SDM+DQpCT09MRUFOX1RZUEU8L0gzPg0KPFBSRT4NCnB1YmxpYyBzdGF0aWMgZmluYWwgc2hvcnQgPEI+Qk9PTEVBTl9UWVBFPC9CPjwvUFJFPg0KPERMPg0KPEREPlRoZSByZXN1bHQgaXMgYSA8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNiNib29sZWFucyc+Ym9vbGVhbjwvYT4gYXMgZGVmaW5lZCBieSBbPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYnPlhQYXRoIDEuMDwvYT5dLiAKIERvY3VtZW50IG1vZGlmaWNhdGlvbiBkb2VzIG5vdCBpbnZhbGlkYXRlIHRoZSBib29sZWFuLCBidXQgbWF5IG1lYW4gCiB0aGF0IHJlZXZhbHVhdGlvbiB3b3VsZCBub3QgeWllbGQgdGhlIHNhbWUgYm9vbGVhbi48L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJVTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFIj48IS0tIC0tPjwvQT48SDM+DQpVTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFPC9IMz4NCjxQUkU+DQpwdWJsaWMgc3RhdGljIGZpbmFsIHNob3J0IDxCPlVOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU8L0I+PC9QUkU+DQo8REw+DQo8REQ+VGhlIHJlc3VsdCBpcyBhIDxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2I25vZGUtc2V0cyc+bm9kZSBzZXQ8L2E+IGFzIGRlZmluZWQgYnkgWzxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2Jz5YUGF0aCAxLjA8L2E+XSB0aGF0IAogd2lsbCBiZSBhY2Nlc3NlZCBpdGVyYXRpdmVseSwgd2hpY2ggbWF5IG5vdCBwcm9kdWNlIG5vZGVzIGluIGEgCiBwYXJ0aWN1bGFyIG9yZGVyLiBEb2N1bWVudCBtb2RpZmljYXRpb24gaW52YWxpZGF0ZXMgdGhlIGl0ZXJhdGlvbi4KIDxicj5UaGlzIGlzIHRoZSBkZWZhdWx0IHR5cGUgcmV0dXJuZWQgaWYgdGhlIHJlc3VsdCBpcyBhIG5vZGUgc2V0IGFuZCAKIDxjb2RlPkFOWV9UWVBFPC9jb2RlPiBpcyByZXF1ZXN0ZWQuPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEUiPjwhLS0gLS0+PC9BPjxIMz4NCk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFPC9IMz4NCjxQUkU+DQpwdWJsaWMgc3RhdGljIGZpbmFsIHNob3J0IDxCPk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFPC9CPjwvUFJFPg0KPERMPg0KPEREPlRoZSByZXN1bHQgaXMgYSBub2RlIHNldCBhcyBkZWZpbmVkIGJ5IFs8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNic+WFBhdGggMS4wPC9hPl0gdGhhdCAKIHdpbGwgYmUgYWNjZXNzZWQgaXRlcmF0aXZlbHksIHdoaWNoIHdpbGwgcHJvZHVjZSBkb2N1bWVudC1vcmRlcmVkIAogbm9kZXMuIERvY3VtZW50IG1vZGlmaWNhdGlvbiBpbnZhbGlkYXRlcyB0aGUgaXRlcmF0aW9uLjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9IlVOT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUiPjwhLS0gLS0+PC9BPjxIMz4NClVOT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU8L0gzPg0KPFBSRT4NCnB1YmxpYyBzdGF0aWMgZmluYWwgc2hvcnQgPEI+VU5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRTwvQj48L1BSRT4NCjxETD4NCjxERD5UaGUgcmVzdWx0IGlzIGEgPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYjbm9kZS1zZXRzJz5ub2RlIHNldDwvYT4gYXMgZGVmaW5lZCBieSBbPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYnPlhQYXRoIDEuMDwvYT5dIHRoYXQgCiB3aWxsIGJlIGFjY2Vzc2VkIGFzIGEgc25hcHNob3QgbGlzdCBvZiBub2RlcyB0aGF0IG1heSBub3QgYmUgaW4gYSAKIHBhcnRpY3VsYXIgb3JkZXIuIERvY3VtZW50IG1vZGlmaWNhdGlvbiBkb2VzIG5vdCBpbnZhbGlkYXRlIHRoZSAKIHNuYXBzaG90IGJ1dCBtYXkgbWVhbiB0aGF0IHJlZXZhbHVhdGlvbiB3b3VsZCBub3QgeWllbGQgdGhlIHNhbWUgCiBzbmFwc2hvdCBhbmQgbm9kZXMgaW4gdGhlIHNuYXBzaG90IG1heSBoYXZlIGJlZW4gYWx0ZXJlZCwgbW92ZWQsIG9yIAogcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudC48L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJPUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSI+PCEtLSAtLT48L0E+PEgzPg0KT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU8L0gzPg0KPFBSRT4NCnB1YmxpYyBzdGF0aWMgZmluYWwgc2hvcnQgPEI+T1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU8L0I+PC9QUkU+DQo8REw+DQo8REQ+VGhlIHJlc3VsdCBpcyBhIDxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2I25vZGUtc2V0cyc+bm9kZSBzZXQ8L2E+IGFzIGRlZmluZWQgYnkgWzxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2Jz5YUGF0aCAxLjA8L2E+XSB0aGF0IAogd2lsbCBiZSBhY2Nlc3NlZCBhcyBhIHNuYXBzaG90IGxpc3Qgb2Ygbm9kZXMgdGhhdCB3aWxsIGJlIGluIG9yaWdpbmFsIAogZG9jdW1lbnQgb3JkZXIuIERvY3VtZW50IG1vZGlmaWNhdGlvbiBkb2VzIG5vdCBpbnZhbGlkYXRlIHRoZSAKIHNuYXBzaG90IGJ1dCBtYXkgbWVhbiB0aGF0IHJlZXZhbHVhdGlvbiB3b3VsZCBub3QgeWllbGQgdGhlIHNhbWUgCiBzbmFwc2hvdCBhbmQgbm9kZXMgaW4gdGhlIHNuYXBzaG90IG1heSBoYXZlIGJlZW4gYWx0ZXJlZCwgbW92ZWQsIG9yIAogcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudC48L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJBTllfVU5PUkRFUkVEX05PREVfVFlQRSI+PCEtLSAtLT48L0E+PEgzPg0KQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEU8L0gzPg0KPFBSRT4NCnB1YmxpYyBzdGF0aWMgZmluYWwgc2hvcnQgPEI+QU5ZX1VOT1JERVJFRF9OT0RFX1RZUEU8L0I+PC9QUkU+DQo8REw+DQo8REQ+VGhlIHJlc3VsdCBpcyBhIDxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2I25vZGUtc2V0cyc+bm9kZSBzZXQ8L2E+IGFzIGRlZmluZWQgYnkgWzxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2Jz5YUGF0aCAxLjA8L2E+XSBhbmQgCiB3aWxsIGJlIGFjY2Vzc2VkIGFzIGEgc2luZ2xlIG5vZGUsIHdoaWNoIG1heSBiZSA8Y29kZT5udWxsPC9jb2RlPmlmIAogdGhlIG5vZGUgc2V0IGlzIGVtcHR5LiBEb2N1bWVudCBtb2RpZmljYXRpb24gZG9lcyBub3QgaW52YWxpZGF0ZSB0aGUgCiBub2RlLCBidXQgbWF5IG1lYW4gdGhhdCB0aGUgcmVzdWx0IG5vZGUgbm8gbG9uZ2VyIGNvcnJlc3BvbmRzIHRvIHRoZSAKIGN1cnJlbnQgZG9jdW1lbnQuIFRoaXMgaXMgYSBjb252ZW5pZW5jZSB0aGF0IHBlcm1pdHMgb3B0aW1pemF0aW9uIAogc2luY2UgdGhlIGltcGxlbWVudGF0aW9uIGNhbiBzdG9wIG9uY2UgYW55IG5vZGUgaW4gdGhlIHJlc3VsdGluZyBzZXQgCiBoYXMgYmVlbiBmb3VuZC4KIDxicj5JZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIG5vZGUgaW4gdGhlIGFjdHVhbCByZXN1bHQsIHRoZSBzaW5nbGUgCiBub2RlIHJldHVybmVkIG1pZ2h0IG5vdCBiZSB0aGUgZmlyc3QgaW4gZG9jdW1lbnQgb3JkZXIuPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iRklSU1RfT1JERVJFRF9OT0RFX1RZUEUiPjwhLS0gLS0+PC9BPjxIMz4NCkZJUlNUX09SREVSRURfTk9ERV9UWVBFPC9IMz4NCjxQUkU+DQpwdWJsaWMgc3RhdGljIGZpbmFsIHNob3J0IDxCPkZJUlNUX09SREVSRURfTk9ERV9UWVBFPC9CPjwvUFJFPg0KPERMPg0KPEREPlRoZSByZXN1bHQgaXMgYSA8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNiNub2RlLXNldHMnPm5vZGUgc2V0PC9hPiBhcyBkZWZpbmVkIGJ5IFs8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNic+WFBhdGggMS4wPC9hPl0gYW5kIAogd2lsbCBiZSBhY2Nlc3NlZCBhcyBhIHNpbmdsZSBub2RlLCB3aGljaCBtYXkgYmUgPGNvZGU+bnVsbDwvY29kZT4gaWYgCiB0aGUgbm9kZSBzZXQgaXMgZW1wdHkuIERvY3VtZW50IG1vZGlmaWNhdGlvbiBkb2VzIG5vdCBpbnZhbGlkYXRlIHRoZSAKIG5vZGUsIGJ1dCBtYXkgbWVhbiB0aGF0IHRoZSByZXN1bHQgbm9kZSBubyBsb25nZXIgY29ycmVzcG9uZHMgdG8gdGhlIAogY3VycmVudCBkb2N1bWVudC4gVGhpcyBpcyBhIGNvbnZlbmllbmNlIHRoYXQgcGVybWl0cyBvcHRpbWl6YXRpb24gCiBzaW5jZSB0aGUgaW1wbGVtZW50YXRpb24gY2FuIHN0b3Agb25jZSB0aGUgZmlyc3Qgbm9kZSBpbiBkb2N1bWVudCAKIG9yZGVyIG9mIHRoZSByZXN1bHRpbmcgc2V0IGhhcyBiZWVuIGZvdW5kLgogPGJyPklmIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIG5vZGUgaW4gdGhlIGFjdHVhbCByZXN1bHQsIHRoZSBzaW5nbGUgCiBub2RlIHJldHVybmVkIHdpbGwgYmUgdGhlIGZpcnN0IGluIGRvY3VtZW50IG9yZGVyLjwvREw+DQoNCjwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4NCg0KDQo8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+DQoNCjxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQoNCjxBIE5BTUU9ImdldFJlc3VsdFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0UmVzdWx0VHlwZTwvSDM+DQo8UFJFPg0KcHVibGljIHNob3J0IDxCPmdldFJlc3VsdFR5cGU8L0I+KCk8L1BSRT4NCjxETD4NCjxERD5BIGNvZGUgcmVwcmVzZW50aW5nIHRoZSB0eXBlIG9mIHRoaXMgcmVzdWx0LCBhcyBkZWZpbmVkIGJ5IHRoZSB0eXBlIAogY29uc3RhbnRzLjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldE51bWJlclZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmdldE51bWJlclZhbHVlPC9IMz4NCjxQUkU+DQpwdWJsaWMgZG91YmxlIDxCPmdldE51bWJlclZhbHVlPC9CPigpCiAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhFeGNlcHRpb24uaHRtbCI+WFBhdGhFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+VGhlIHZhbHVlIG9mIHRoaXMgbnVtYmVyIHJlc3VsdC4gSWYgdGhlIG5hdGl2ZSBkb3VibGUgdHlwZSBvZiB0aGUgRE9NIAogYmluZGluZyBkb2VzIG5vdCBkaXJlY3RseSBzdXBwb3J0IHRoZSBleGFjdCBJRUVFIDc1NCByZXN1bHQgb2YgdGhlIAogWFBhdGggZXhwcmVzc2lvbiwgdGhlbiBpdCBpcyB1cCB0byB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgYmluZGluZyB0byAKIHNwZWNpZnkgaG93IHRoZSBYUGF0aCBudW1iZXIgaXMgY29udmVydGVkIHRvIHRoZSBuYXRpdmUgYmluZGluZyAKIG51bWJlci48REQ+PERMPg0KPERUPjxCPlRocm93czo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL3hwYXRoL1hQYXRoRXhjZXB0aW9uLmh0bWwiPlhQYXRoRXhjZXB0aW9uPC9BPiAtIFRZUEVfRVJSOiByYWlzZWQgaWYgPGNvZGU+cmVzdWx0VHlwZTwvY29kZT4gaXMgbm90IAogICA8Y29kZT5OVU1CRVJfVFlQRTwvY29kZT4uPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJnZXRTdHJpbmdWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRTdHJpbmdWYWx1ZTwvSDM+DQo8UFJFPg0KcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U3RyaW5nVmFsdWU8L0I+KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhFeGNlcHRpb24uaHRtbCI+WFBhdGhFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+VGhlIHZhbHVlIG9mIHRoaXMgc3RyaW5nIHJlc3VsdC48REQ+PERMPg0KPERUPjxCPlRocm93czo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL3hwYXRoL1hQYXRoRXhjZXB0aW9uLmh0bWwiPlhQYXRoRXhjZXB0aW9uPC9BPiAtIFRZUEVfRVJSOiByYWlzZWQgaWYgPGNvZGU+cmVzdWx0VHlwZTwvY29kZT4gaXMgbm90IAogICA8Y29kZT5TVFJJTkdfVFlQRTwvY29kZT4uPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJnZXRCb29sZWFuVmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0Qm9vbGVhblZhbHVlPC9IMz4NCjxQUkU+DQpwdWJsaWMgYm9vbGVhbiA8Qj5nZXRCb29sZWFuVmFsdWU8L0I+KCkKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL3hwYXRoL1hQYXRoRXhjZXB0aW9uLmh0bWwiPlhQYXRoRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPlRoZSB2YWx1ZSBvZiB0aGlzIGJvb2xlYW4gcmVzdWx0LjxERD48REw+DQo8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhFeGNlcHRpb24uaHRtbCI+WFBhdGhFeGNlcHRpb248L0E+IC0gVFlQRV9FUlI6IHJhaXNlZCBpZiA8Y29kZT5yZXN1bHRUeXBlPC9jb2RlPiBpcyBub3QgCiAgIDxjb2RlPkJPT0xFQU5fVFlQRTwvY29kZT4uPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJnZXRTaW5nbGVOb2RlVmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0U2luZ2xlTm9kZVZhbHVlPC9IMz4NCjxQUkU+DQpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sIj5Ob2RlPC9BPiA8Qj5nZXRTaW5nbGVOb2RlVmFsdWU8L0I+KCkKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL3hwYXRoL1hQYXRoRXhjZXB0aW9uLmh0bWwiPlhQYXRoRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPlRoZSB2YWx1ZSBvZiB0aGlzIHNpbmdsZSBub2RlIHJlc3VsdCwgd2hpY2ggbWF5IGJlIDxjb2RlPm51bGw8L2NvZGU+LjxERD48REw+DQo8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20veHBhdGgvWFBhdGhFeGNlcHRpb24uaHRtbCI+WFBhdGhFeGNlcHRpb248L0E+IC0gVFlQRV9FUlI6IHJhaXNlZCBpZiA8Y29kZT5yZXN1bHRUeXBlPC9jb2RlPiBpcyBub3QgCiAgIDxjb2RlPkFOWV9VTk9SREVSRURfTk9ERV9UWVBFPC9jb2RlPiBvciAKICAgPGNvZGU+RklSU1RfT1JERVJFRF9OT0RFX1RZUEU8L2NvZGU+LjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZ2V0SW52YWxpZEl0ZXJhdG9yU3RhdGUoKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0SW52YWxpZEl0ZXJhdG9yU3RhdGU8L0gzPg0KPFBSRT4NCnB1YmxpYyBib29sZWFuIDxCPmdldEludmFsaWRJdGVyYXRvclN0YXRlPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+U2lnbmlmaWVzIHRoYXQgdGhlIGl0ZXJhdG9yIGhhcyBiZWNvbWUgaW52YWxpZC4gVHJ1ZSBpZiAKIDxjb2RlPnJlc3VsdFR5cGU8L2NvZGU+IGlzIDxjb2RlPlVOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU8L2NvZGU+IAogb3IgPGNvZGU+T1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU8L2NvZGU+IGFuZCB0aGUgZG9jdW1lbnQgaGFzIGJlZW4gCiBtb2RpZmllZCBzaW5jZSB0aGlzIHJlc3VsdCB3YXMgcmV0dXJuZWQuPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZ2V0U25hcHNob3RMZW5ndGgoKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0U25hcHNob3RMZW5ndGg8L0gzPg0KPFBSRT4NCnB1YmxpYyBpbnQgPEI+Z2V0U25hcHNob3RMZW5ndGg8L0I+KCkKICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS94cGF0aC9YUGF0aEV4Y2VwdGlvbi5odG1sIj5YUGF0aEV4Y2VwdGlvbjwvQT48L1BSRT4NCjxETD4NCjxERD5UaGUgbnVtYmVyIG9mIG5vZGVzIGluIHRoZSByZXN1bHQgc25hcHNob3QuIFZhbGlkIHZhbHVlcyBmb3IgCiBzbmFwc2hvdEl0ZW0gaW5kaWNlcyBhcmUgPGNvZGU+MDwvY29kZT4gdG8gCiA8Y29kZT5zbmFwc2hvdExlbmd0aC0xPC9jb2RlPiBpbmNsdXNpdmUuPEREPjxETD4NCjxEVD48Qj5UaHJvd3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS94cGF0aC9YUGF0aEV4Y2VwdGlvbi5odG1sIj5YUGF0aEV4Y2VwdGlvbjwvQT4gLSBUWVBFX0VSUjogcmFpc2VkIGlmIDxjb2RlPnJlc3VsdFR5cGU8L2NvZGU+IGlzIG5vdCAKICAgPGNvZGU+VU5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRTwvY29kZT4gb3IgCiAgIDxjb2RlPk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFPC9jb2RlPi48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9Iml0ZXJhdGVOZXh0KCkiPjwhLS0gLS0+PC9BPjxIMz4NCml0ZXJhdGVOZXh0PC9IMz4NCjxQUkU+DQpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sIj5Ob2RlPC9BPiA8Qj5pdGVyYXRlTmV4dDwvQj4oKQogICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS94cGF0aC9YUGF0aEV4Y2VwdGlvbi5odG1sIj5YUGF0aEV4Y2VwdGlvbjwvQT4sCiAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL0RPTUV4Y2VwdGlvbi5odG1sIj5ET01FeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+SXRlcmF0ZXMgYW5kIHJldHVybnMgdGhlIG5leHQgbm9kZSBmcm9tIHRoZSBub2RlIHNldCBvciAKIDxjb2RlPm51bGw8L2NvZGU+aWYgdGhlcmUgYXJlIG5vIG1vcmUgbm9kZXMuPEREPjxETD4NCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+UmV0dXJucyB0aGUgbmV4dCBub2RlLjxEVD48Qj5UaHJvd3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS94cGF0aC9YUGF0aEV4Y2VwdGlvbi5odG1sIj5YUGF0aEV4Y2VwdGlvbjwvQT4gLSBUWVBFX0VSUjogcmFpc2VkIGlmIDxjb2RlPnJlc3VsdFR5cGU8L2NvZGU+IGlzIG5vdCAKICAgPGNvZGU+VU5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRTwvY29kZT4gb3IgCiAgIDxjb2RlPk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFPC9jb2RlPi48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vRE9NRXhjZXB0aW9uLmh0bWwiPkRPTUV4Y2VwdGlvbjwvQT4gLSBJTlZBTElEX1NUQVRFX0VSUjogVGhlIGRvY3VtZW50IGhhcyBiZWVuIG11dGF0ZWQgc2luY2UgdGhlIHJlc3VsdCB3YXMgCiAgIHJldHVybmVkLjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic25hcHNob3RJdGVtKGludCkiPjwhLS0gLS0+PC9BPjxIMz4NCnNuYXBzaG90SXRlbTwvSDM+DQo8UFJFPg0KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCI+Tm9kZTwvQT4gPEI+c25hcHNob3RJdGVtPC9CPihpbnQmbmJzcDtpbmRleCkKICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL3hwYXRoL1hQYXRoRXhjZXB0aW9uLmh0bWwiPlhQYXRoRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPlJldHVybnMgdGhlIDxjb2RlPmluZGV4PC9jb2RlPnRoIGl0ZW0gaW4gdGhlIHNuYXBzaG90IGNvbGxlY3Rpb24uIElmIAogPGNvZGU+aW5kZXg8L2NvZGU+IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIAogdGhlIGxpc3QsIHRoaXMgbWV0aG9kIHJldHVybnMgPGNvZGU+bnVsbDwvY29kZT4uIFVubGlrZSB0aGUgaXRlcmF0b3IgCiByZXN1bHQsIHRoZSBzbmFwc2hvdCBkb2VzIG5vdCBiZWNvbWUgaW52YWxpZCwgYnV0IG1heSBub3QgY29ycmVzcG9uZCAKIHRvIHRoZSBjdXJyZW50IGRvY3VtZW50IGlmIGl0IGlzIG11dGF0ZWQuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5kZXg8L0NPREU+IC0gSW5kZXggaW50byB0aGUgc25hcHNob3QgY29sbGVjdGlvbi48RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBub2RlIGF0IHRoZSA8Y29kZT5pbmRleDwvY29kZT50aCBwb3NpdGlvbiBpbiB0aGUgCiAgIDxjb2RlPk5vZGVMaXN0PC9jb2RlPiwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhhdCBpcyBub3QgYSB2YWxpZCAKICAgaW5kZXguPERUPjxCPlRocm93czo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL3hwYXRoL1hQYXRoRXhjZXB0aW9uLmh0bWwiPlhQYXRoRXhjZXB0aW9uPC9BPiAtIFRZUEVfRVJSOiByYWlzZWQgaWYgPGNvZGU+cmVzdWx0VHlwZTwvY29kZT4gaXMgbm90IAogICA8Y29kZT5VTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFPC9jb2RlPiBvciAKICAgPGNvZGU+T1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU8L2NvZGU+LjwvREw+DQo8L0REPg0KPC9ETD4NCjwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4NCjxIUj4NCg0KPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPg0KPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPg0KPFRSPg0KPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPg0KPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+DQogIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1hQYXRoUmVzdWx0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8L1RSPg0KPC9UQUJMRT4NCjwvVEQ+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4NCjwvRU0+DQo8L1REPg0KPC9UUj4NCg0KPFRSPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL3hwYXRoL1hQYXRoTlNSZXNvbHZlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsNCiZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4NCjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+DQogIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOw0KJm5ic3A7PEEgSFJFRj0iWFBhdGhSZXN1bHQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUj4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQogIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4NCkRFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+DQoNCjxIUj4NCkNvcHlyaWdodCCpIDIwMDYgQXBhY2hlIFhNTCBQcm9qZWN0LiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KPC9CT0RZPg0KPC9IVE1MPg0K