PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPCEtLU5ld1BhZ2UtLT4NCjxIVE1MPg0KPEhFQUQ+DQo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFRodSBOb3YgMjIgMTc6MTI6NTggRVNUIDIwMDcgLS0+DQo8VElUTEU+DQpYYWxhbi1KYXZhIDIuNy4xOiBDbGFzcyAgWFBhdGhJbXBsDQo8L1RJVExFPg0KPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPg0KPC9IRUFEPg0KPEJPRFkgQkdDT0xPUj0id2hpdGUiPg0KDQo8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+DQo8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+DQo8VFI+DQo8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+DQo8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4NCiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvWFBhdGhJbXBsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8L1RSPg0KPC9UQUJMRT4NCjwvVEQ+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4NCjwvRU0+DQo8L1REPg0KPC9UUj4NCg0KPFRSPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveHBhdGgvamF4cC9YUGF0aEZhY3RvcnlJbXBsLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOw0KJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7DQombmJzcDs8QSBIUkVGPSJYUGF0aEltcGwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUj4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQogIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQpERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+DQoNCjxIUj4NCjwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4NCjxIMj4NCjxGT05UIFNJWkU9Ii0xIj4NCm9yZy5hcGFjaGUueHBhdGguamF4cDwvRk9OVD4NCjxCUj4NCkNsYXNzICBYUGF0aEltcGw8L0gyPg0KPFBSRT4NCmphdmEubGFuZy5PYmplY3QNCiAgfA0KICArLS08Qj5vcmcuYXBhY2hlLnhwYXRoLmpheHAuWFBhdGhJbXBsPC9CPg0KPC9QUkU+DQo8SFI+DQo8REw+DQo8RFQ+cHVibGljIGNsYXNzIDxCPlhQYXRoSW1wbDwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoLmh0bWwiPlhQYXRoPC9BPjwvREw+DQoNCjxQPg0KVGhlIFhQYXRoSW1wbCBjbGFzcyBwcm92aWRlcyBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIG1ldGhvZHMgZGVmaW5lZCAgaW4KIGphdmF4LnhtbC54cGF0aC5YUGF0aCBpbnRlcmZhY2UuIFRoaXMgcHJvdmlkZSBzaW1wbGUgYWNjZXNzIHRvIHRoZSByZXN1bHRzCiBvZiBhbiBYUGF0aCBleHByZXNzaW9uLg0KPFA+DQo8SFI+DQoNCjxQPg0KPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4NCg0KDQo8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+DQoNCg0KPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPg0KDQo8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+DQo8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4NCjxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoRXhwcmVzc2lvbi5odG1sIj5YUGF0aEV4cHJlc3Npb248L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveHBhdGgvamF4cC9YUGF0aEltcGwuaHRtbCNjb21waWxlKGphdmEubGFuZy5TdHJpbmcpIj5jb21waWxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2V4cHJlc3Npb24pPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21waWxlIGFuIFhQYXRoIGV4cHJlc3Npb24gZm9yIGxhdGVyIGV2YWx1YXRpb24uPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94cGF0aC9qYXhwL1hQYXRoSW1wbC5odG1sI2V2YWx1YXRlKGphdmEubGFuZy5TdHJpbmcsIG9yZy54bWwuc2F4LklucHV0U291cmNlKSI+ZXZhbHVhdGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZXhwcmVzc2lvbiwKICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvSW5wdXRTb3VyY2UuaHRtbCI+SW5wdXRTb3VyY2U8L0E+Jm5ic3A7c291cmNlKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgYW4gWFBhdGggZXhwcmVzc2lvbiBpbiB0aGUgY29udGV4dCBvZiB0aGUgc3BlY2lmaWVkIDxjb2RlPklucHV0U291cmNlPC9jb2RlPgogYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+U3RyaW5nPC9jb2RlPi48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3hwYXRoL2pheHAvWFBhdGhJbXBsLmh0bWwjZXZhbHVhdGUoamF2YS5sYW5nLlN0cmluZywgb3JnLnhtbC5zYXguSW5wdXRTb3VyY2UsIGphdmF4LnhtbC5uYW1lc3BhY2UuUU5hbWUpIj5ldmFsdWF0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtleHByZXNzaW9uLAogICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9JbnB1dFNvdXJjZS5odG1sIj5JbnB1dFNvdXJjZTwvQT4mbmJzcDtzb3VyY2UsCiAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC9uYW1lc3BhY2UvUU5hbWUuaHRtbCI+UU5hbWU8L0E+Jm5ic3A7cmV0dXJuVHlwZSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIGFuIFhQYXRoIGV4cHJlc3Npb24gaW4gdGhlIGNvbnRleHQgb2YgdGhlIHNwZWNpZmllZCA8Y29kZT5JbnB1dFNvdXJjZTwvY29kZT4KIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcyB0aGUgc3BlY2lmaWVkIHR5cGUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94cGF0aC9qYXhwL1hQYXRoSW1wbC5odG1sI2V2YWx1YXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5ldmFsdWF0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtleHByZXNzaW9uLAogICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7aXRlbSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIGFuIFhQYXRoIGV4cHJlc3Npb24gaW4gdGhlIHNwZWNpZmllZCBjb250ZXh0IGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcyBhIDxjb2RlPlN0cmluZzwvY29kZT4uPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94cGF0aC9qYXhwL1hQYXRoSW1wbC5odG1sI2V2YWx1YXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmF4LnhtbC5uYW1lc3BhY2UuUU5hbWUpIj5ldmFsdWF0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtleHByZXNzaW9uLAogICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7aXRlbSwKICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL25hbWVzcGFjZS9RTmFtZS5odG1sIj5RTmFtZTwvQT4mbmJzcDtyZXR1cm5UeXBlKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgYW4gPGNvZGU+WFBhdGg8L2NvZGU+IGV4cHJlc3Npb24gaW4gdGhlIHNwZWNpZmllZCBjb250ZXh0IGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcyB0aGUgc3BlY2lmaWVkIHR5cGUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC9uYW1lc3BhY2UvTmFtZXNwYWNlQ29udGV4dC5odG1sIj5OYW1lc3BhY2VDb250ZXh0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3hwYXRoL2pheHAvWFBhdGhJbXBsLmh0bWwjZ2V0TmFtZXNwYWNlQ29udGV4dCgpIj5nZXROYW1lc3BhY2VDb250ZXh0PC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgY3VycmVudCBuYW1lc3BhY2UgY29udGV4dC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoRnVuY3Rpb25SZXNvbHZlci5odG1sIj5YUGF0aEZ1bmN0aW9uUmVzb2x2ZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveHBhdGgvamF4cC9YUGF0aEltcGwuaHRtbCNnZXRYUGF0aEZ1bmN0aW9uUmVzb2x2ZXIoKSI+Z2V0WFBhdGhGdW5jdGlvblJlc29sdmVyPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgY3VycmVudCBmdW5jdGlvbiByZXNvbHZlci48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoVmFyaWFibGVSZXNvbHZlci5odG1sIj5YUGF0aFZhcmlhYmxlUmVzb2x2ZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveHBhdGgvamF4cC9YUGF0aEltcGwuaHRtbCNnZXRYUGF0aFZhcmlhYmxlUmVzb2x2ZXIoKSI+Z2V0WFBhdGhWYXJpYWJsZVJlc29sdmVyPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgY3VycmVudCB2YXJpYWJsZSByZXNvbHZlci48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3hwYXRoL2pheHAvWFBhdGhJbXBsLmh0bWwjcmVzZXQoKSI+cmVzZXQ8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCB0aGlzIDxjb2RlPlhQYXRoPC9jb2RlPiB0byBpdHMgb3JpZ2luYWwgY29uZmlndXJhdGlvbi48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3hwYXRoL2pheHAvWFBhdGhJbXBsLmh0bWwjc2V0TmFtZXNwYWNlQ29udGV4dChqYXZheC54bWwubmFtZXNwYWNlLk5hbWVzcGFjZUNvbnRleHQpIj5zZXROYW1lc3BhY2VDb250ZXh0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL25hbWVzcGFjZS9OYW1lc3BhY2VDb250ZXh0Lmh0bWwiPk5hbWVzcGFjZUNvbnRleHQ8L0E+Jm5ic3A7bnNDb250ZXh0KTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXN0YWJsaXNoZXMgYSBuYW1lc3BhY2UgY29udGV4dC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3hwYXRoL2pheHAvWFBhdGhJbXBsLmh0bWwjc2V0WFBhdGhGdW5jdGlvblJlc29sdmVyKGphdmF4LnhtbC54cGF0aC5YUGF0aEZ1bmN0aW9uUmVzb2x2ZXIpIj5zZXRYUGF0aEZ1bmN0aW9uUmVzb2x2ZXI8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhGdW5jdGlvblJlc29sdmVyLmh0bWwiPlhQYXRoRnVuY3Rpb25SZXNvbHZlcjwvQT4mbmJzcDtyZXNvbHZlcik8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0VzdGFibGlzaGVzIGEgZnVuY3Rpb24gcmVzb2x2ZXIuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94cGF0aC9qYXhwL1hQYXRoSW1wbC5odG1sI3NldFhQYXRoVmFyaWFibGVSZXNvbHZlcihqYXZheC54bWwueHBhdGguWFBhdGhWYXJpYWJsZVJlc29sdmVyKSI+c2V0WFBhdGhWYXJpYWJsZVJlc29sdmVyPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoVmFyaWFibGVSZXNvbHZlci5odG1sIj5YUGF0aFZhcmlhYmxlUmVzb2x2ZXI8L0E+Jm5ic3A7cmVzb2x2ZXIpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFc3RhYmxpc2hlcyBhIHZhcmlhYmxlIHJlc29sdmVyLjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCiZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+DQo8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQ+PENPREU+ZXF1YWxzLCANCmdldENsYXNzLCANCmhhc2hDb2RlLCANCm5vdGlmeSwgDQpub3RpZnlBbGwsIA0KdG9TdHJpbmcsIA0Kd2FpdCwgDQp3YWl0LCANCndhaXQ8L0NPREU+PC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KJm5ic3A7DQo8UD4NCg0KPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4NCg0KDQo8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+DQoNCjxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQoNCjxBIE5BTUU9InNldFhQYXRoVmFyaWFibGVSZXNvbHZlcihqYXZheC54bWwueHBhdGguWFBhdGhWYXJpYWJsZVJlc29sdmVyKSI+PCEtLSAtLT48L0E+PEgzPg0Kc2V0WFBhdGhWYXJpYWJsZVJlc29sdmVyPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZXRYUGF0aFZhcmlhYmxlUmVzb2x2ZXI8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aFZhcmlhYmxlUmVzb2x2ZXIuaHRtbCI+WFBhdGhWYXJpYWJsZVJlc29sdmVyPC9BPiZuYnNwO3Jlc29sdmVyKTwvUFJFPg0KPERMPg0KPEREPjxwPkVzdGFibGlzaGVzIGEgdmFyaWFibGUgcmVzb2x2ZXIuPC9wPjxERD48REw+DQo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aC5odG1sI3NldFhQYXRoVmFyaWFibGVSZXNvbHZlcihqYXZheC54bWwueHBhdGguWFBhdGhWYXJpYWJsZVJlc29sdmVyKSI+c2V0WFBhdGhWYXJpYWJsZVJlc29sdmVyPC9BPiBpbiBpbnRlcmZhY2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoLmh0bWwiPlhQYXRoPC9BPjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVzb2x2ZXI8L0NPREU+IC0gVmFyaWFibGUgUmVzb2x2ZXI8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldFhQYXRoVmFyaWFibGVSZXNvbHZlcigpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRYUGF0aFZhcmlhYmxlUmVzb2x2ZXI8L0gzPg0KPFBSRT4NCnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhWYXJpYWJsZVJlc29sdmVyLmh0bWwiPlhQYXRoVmFyaWFibGVSZXNvbHZlcjwvQT4gPEI+Z2V0WFBhdGhWYXJpYWJsZVJlc29sdmVyPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+PHA+UmV0dXJucyB0aGUgY3VycmVudCB2YXJpYWJsZSByZXNvbHZlci48L3A+PEREPjxETD4NCjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoLmh0bWwjZ2V0WFBhdGhWYXJpYWJsZVJlc29sdmVyKCkiPmdldFhQYXRoVmFyaWFibGVSZXNvbHZlcjwvQT4gaW4gaW50ZXJmYWNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aC5odG1sIj5YUGF0aDwvQT48RFQ+PEI+UmV0dXJuczo8L0I+PEREPkN1cnJlbnQgdmFyaWFibGUgcmVzb2x2ZXI8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InNldFhQYXRoRnVuY3Rpb25SZXNvbHZlcihqYXZheC54bWwueHBhdGguWFBhdGhGdW5jdGlvblJlc29sdmVyKSI+PCEtLSAtLT48L0E+PEgzPg0Kc2V0WFBhdGhGdW5jdGlvblJlc29sdmVyPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZXRYUGF0aEZ1bmN0aW9uUmVzb2x2ZXI8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aEZ1bmN0aW9uUmVzb2x2ZXIuaHRtbCI+WFBhdGhGdW5jdGlvblJlc29sdmVyPC9BPiZuYnNwO3Jlc29sdmVyKTwvUFJFPg0KPERMPg0KPEREPjxwPkVzdGFibGlzaGVzIGEgZnVuY3Rpb24gcmVzb2x2ZXIuPC9wPjxERD48REw+DQo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aC5odG1sI3NldFhQYXRoRnVuY3Rpb25SZXNvbHZlcihqYXZheC54bWwueHBhdGguWFBhdGhGdW5jdGlvblJlc29sdmVyKSI+c2V0WFBhdGhGdW5jdGlvblJlc29sdmVyPC9BPiBpbiBpbnRlcmZhY2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoLmh0bWwiPlhQYXRoPC9BPjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVzb2x2ZXI8L0NPREU+IC0gWFBhdGggZnVuY3Rpb24gcmVzb2x2ZXI8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldFhQYXRoRnVuY3Rpb25SZXNvbHZlcigpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRYUGF0aEZ1bmN0aW9uUmVzb2x2ZXI8L0gzPg0KPFBSRT4NCnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhGdW5jdGlvblJlc29sdmVyLmh0bWwiPlhQYXRoRnVuY3Rpb25SZXNvbHZlcjwvQT4gPEI+Z2V0WFBhdGhGdW5jdGlvblJlc29sdmVyPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+PHA+UmV0dXJucyB0aGUgY3VycmVudCBmdW5jdGlvbiByZXNvbHZlci48L3A+PEREPjxETD4NCjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoLmh0bWwjZ2V0WFBhdGhGdW5jdGlvblJlc29sdmVyKCkiPmdldFhQYXRoRnVuY3Rpb25SZXNvbHZlcjwvQT4gaW4gaW50ZXJmYWNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aC5odG1sIj5YUGF0aDwvQT48RFQ+PEI+UmV0dXJuczo8L0I+PEREPkN1cnJlbnQgZnVuY3Rpb24gcmVzb2x2ZXI8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InNldE5hbWVzcGFjZUNvbnRleHQoamF2YXgueG1sLm5hbWVzcGFjZS5OYW1lc3BhY2VDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPg0Kc2V0TmFtZXNwYWNlQ29udGV4dDwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+c2V0TmFtZXNwYWNlQ29udGV4dDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL25hbWVzcGFjZS9OYW1lc3BhY2VDb250ZXh0Lmh0bWwiPk5hbWVzcGFjZUNvbnRleHQ8L0E+Jm5ic3A7bnNDb250ZXh0KTwvUFJFPg0KPERMPg0KPEREPjxwPkVzdGFibGlzaGVzIGEgbmFtZXNwYWNlIGNvbnRleHQuPC9wPjxERD48REw+DQo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aC5odG1sI3NldE5hbWVzcGFjZUNvbnRleHQoamF2YXgueG1sLm5hbWVzcGFjZS5OYW1lc3BhY2VDb250ZXh0KSI+c2V0TmFtZXNwYWNlQ29udGV4dDwvQT4gaW4gaW50ZXJmYWNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aC5odG1sIj5YUGF0aDwvQT48RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5zQ29udGV4dDwvQ09ERT4gLSBOYW1lc3BhY2UgY29udGV4dCB0byB1c2U8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldE5hbWVzcGFjZUNvbnRleHQoKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0TmFtZXNwYWNlQ29udGV4dDwvSDM+DQo8UFJFPg0KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC9uYW1lc3BhY2UvTmFtZXNwYWNlQ29udGV4dC5odG1sIj5OYW1lc3BhY2VDb250ZXh0PC9BPiA8Qj5nZXROYW1lc3BhY2VDb250ZXh0PC9CPigpPC9QUkU+DQo8REw+DQo8REQ+PHA+UmV0dXJucyB0aGUgY3VycmVudCBuYW1lc3BhY2UgY29udGV4dC48L3A+PEREPjxETD4NCjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoLmh0bWwjZ2V0TmFtZXNwYWNlQ29udGV4dCgpIj5nZXROYW1lc3BhY2VDb250ZXh0PC9BPiBpbiBpbnRlcmZhY2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoLmh0bWwiPlhQYXRoPC9BPjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Q3VycmVudCBOYW1lc3BhY2UgY29udGV4dDwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZXZhbHVhdGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YXgueG1sLm5hbWVzcGFjZS5RTmFtZSkiPjwhLS0gLS0+PC9BPjxIMz4NCmV2YWx1YXRlPC9IMz4NCjxQUkU+DQpwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5ldmFsdWF0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2V4cHJlc3Npb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDtpdGVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwvbmFtZXNwYWNlL1FOYW1lLmh0bWwiPlFOYW1lPC9BPiZuYnNwO3JldHVyblR5cGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aEV4cHJlc3Npb25FeGNlcHRpb24uaHRtbCI+WFBhdGhFeHByZXNzaW9uRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPjxwPkV2YWx1YXRlIGFuIDxjb2RlPlhQYXRoPC9jb2RlPiBleHByZXNzaW9uIGluIHRoZSBzcGVjaWZpZWQgY29udGV4dCBhbmQgcmV0dXJuIHRoZSByZXN1bHQgYXMgdGhlIHNwZWNpZmllZCB0eXBlLjwvcD4KCiA8cD5TZWUgIkV2YWx1YXRpb24gb2YgWFBhdGggRXhwcmVzc2lvbnMiIHNlY3Rpb24gb2YgSkFYUCAxLjMgc3BlYwogZm9yIGNvbnRleHQgaXRlbSBldmFsdWF0aW9uLAogdmFyaWFibGUsIGZ1bmN0aW9uIGFuZCA8Y29kZT5RTmFtZTwvY29kZT4gcmVzb2x1dGlvbiBhbmQgcmV0dXJuIHR5cGUgY29udmVyc2lvbi48L3A+CgogPHA+SWYgPGNvZGU+cmV0dXJuVHlwZTwvY29kZT4gaXMgbm90IG9uZSBvZiB0aGUgdHlwZXMgZGVmaW5lZCBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhDb25zdGFudHMuaHRtbCI+PENPREU+WFBhdGhDb25zdGFudHM8L0NPREU+PC9BPiAoCiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhDb25zdGFudHMuaHRtbCNOVU1CRVIiPk5VTUJFUjwvQT4sCiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhDb25zdGFudHMuaHRtbCNTVFJJTkciPlNUUklORzwvQT4sCiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhDb25zdGFudHMuaHRtbCNCT09MRUFOIj5CT09MRUFOPC9BPiwKIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aENvbnN0YW50cy5odG1sI05PREUiPk5PREU8L0E+IG9yCiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhDb25zdGFudHMuaHRtbCNOT0RFU0VUIj5OT0RFU0VUPC9BPikKIHRoZW4gYW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uPC9wPgoKIDxwPklmIGEgPGNvZGU+bnVsbDwvY29kZT4gdmFsdWUgaXMgcHJvdmlkZWQgZm9yCiA8Y29kZT5pdGVtPC9jb2RlPiwgYW4gZW1wdHkgZG9jdW1lbnQgd2lsbCBiZSB1c2VkIGZvciB0aGUKIGNvbnRleHQuCiBJZiA8Y29kZT5leHByZXNzaW9uPC9jb2RlPiBvciA8Y29kZT5yZXR1cm5UeXBlPC9jb2RlPiBpcyA8Y29kZT5udWxsPC9jb2RlPiwgdGhlbiBhCiA8Y29kZT5OdWxsUG9pbnRlckV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLjwvcD48REQ+PERMPg0KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGguaHRtbCNldmFsdWF0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC54bWwubmFtZXNwYWNlLlFOYW1lKSI+ZXZhbHVhdGU8L0E+IGluIGludGVyZmFjZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGguaHRtbCI+WFBhdGg8L0E+PERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5leHByZXNzaW9uPC9DT0RFPiAtIFRoZSBYUGF0aCBleHByZXNzaW9uLjxERD48Q09ERT5pdGVtPC9DT0RFPiAtIFRoZSBzdGFydGluZyBjb250ZXh0IChub2RlIG9yIG5vZGUgbGlzdCwgZm9yIGV4YW1wbGUpLjxERD48Q09ERT5yZXR1cm5UeXBlPC9DT0RFPiAtIFRoZSBkZXNpcmVkIHJldHVybiB0eXBlLjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+UmVzdWx0IG9mIGV2YWx1YXRpbmcgYW4gWFBhdGggZXhwcmVzc2lvbiBhcyBhbiA8Y29kZT5PYmplY3Q8L2NvZGU+IG9mIDxjb2RlPnJldHVyblR5cGU8L2NvZGU+LjxEVD48Qj5UaHJvd3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhFeHByZXNzaW9uRXhjZXB0aW9uLmh0bWwiPlhQYXRoRXhwcmVzc2lvbkV4Y2VwdGlvbjwvQT4gLSBJZiA8Y29kZT5leHByZXNzaW9uPC9jb2RlPiBjYW5ub3QgYmUgZXZhbHVhdGVkLjxERD5qYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIC0gSWYgPGNvZGU+cmV0dXJuVHlwZTwvY29kZT4gaXMgbm90IG9uZSBvZiB0aGUgdHlwZXMgZGVmaW5lZCBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhDb25zdGFudHMuaHRtbCI+PENPREU+WFBhdGhDb25zdGFudHM8L0NPREU+PC9BPi48REQ+amF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uIC0gSWYgPGNvZGU+ZXhwcmVzc2lvbjwvY29kZT4gb3IgPGNvZGU+cmV0dXJuVHlwZTwvY29kZT4gaXMgPGNvZGU+bnVsbDwvY29kZT4uPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJldmFsdWF0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPg0KZXZhbHVhdGU8L0gzPg0KPFBSRT4NCnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmV2YWx1YXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZXhwcmVzc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2l0ZW0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aEV4cHJlc3Npb25FeGNlcHRpb24uaHRtbCI+WFBhdGhFeHByZXNzaW9uRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPjxwPkV2YWx1YXRlIGFuIFhQYXRoIGV4cHJlc3Npb24gaW4gdGhlIHNwZWNpZmllZCBjb250ZXh0IGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcyBhIDxjb2RlPlN0cmluZzwvY29kZT4uPC9wPgoKIDxwPlRoaXMgbWV0aG9kIGNhbGxzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveHBhdGgvamF4cC9YUGF0aEltcGwuaHRtbCNldmFsdWF0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC54bWwubmFtZXNwYWNlLlFOYW1lKSI+PENPREU+ZXZhbHVhdGUoU3RyaW5nIGV4cHJlc3Npb24sIE9iamVjdCBpdGVtLCBRTmFtZSByZXR1cm5UeXBlKTwvQ09ERT48L0E+IHdpdGggYSA8Y29kZT5yZXR1cm5UeXBlPC9jb2RlPiBvZgogPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoQ29uc3RhbnRzLmh0bWwjU1RSSU5HIj48Q09ERT5YUGF0aENvbnN0YW50cy5TVFJJTkc8L0NPREU+PC9BPi48L3A+CgogPHA+U2VlICJFdmFsdWF0aW9uIG9mIFhQYXRoIEV4cHJlc3Npb25zIiBvZiBKQVhQIDEuMyBzcGVjIAogZm9yIGNvbnRleHQgaXRlbSBldmFsdWF0aW9uLAogdmFyaWFibGUsIGZ1bmN0aW9uIGFuZCBRTmFtZSByZXNvbHV0aW9uIGFuZCByZXR1cm4gdHlwZSBjb252ZXJzaW9uLjwvcD4KCiA8cD5JZiBhIDxjb2RlPm51bGw8L2NvZGU+IHZhbHVlIGlzIHByb3ZpZGVkIGZvcgogPGNvZGU+aXRlbTwvY29kZT4sIGFuIGVtcHR5IGRvY3VtZW50IHdpbGwgYmUgdXNlZCBmb3IgdGhlCiBjb250ZXh0LgogSWYgPGNvZGU+ZXhwcmVzc2lvbjwvY29kZT4gaXMgPGNvZGU+bnVsbDwvY29kZT4sIHRoZW4gYSA8Y29kZT5OdWxsUG9pbnRlckV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLjwvcD48REQ+PERMPg0KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGguaHRtbCNldmFsdWF0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+ZXZhbHVhdGU8L0E+IGluIGludGVyZmFjZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGguaHRtbCI+WFBhdGg8L0E+PERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5leHByZXNzaW9uPC9DT0RFPiAtIFRoZSBYUGF0aCBleHByZXNzaW9uLjxERD48Q09ERT5pdGVtPC9DT0RFPiAtIFRoZSBzdGFydGluZyBjb250ZXh0IChub2RlIG9yIG5vZGUgbGlzdCwgZm9yIGV4YW1wbGUpLjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIDxjb2RlPlN0cmluZzwvY29kZT4gdGhhdCBpcyB0aGUgcmVzdWx0IG9mIGV2YWx1YXRpbmcgdGhlIGV4cHJlc3Npb24gYW5kCiAgIGNvbnZlcnRpbmcgdGhlIHJlc3VsdCB0byBhIDxjb2RlPlN0cmluZzwvY29kZT4uPERUPjxCPlRocm93czo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aEV4cHJlc3Npb25FeGNlcHRpb24uaHRtbCI+WFBhdGhFeHByZXNzaW9uRXhjZXB0aW9uPC9BPiAtIElmIDxjb2RlPmV4cHJlc3Npb248L2NvZGU+IGNhbm5vdCBiZSBldmFsdWF0ZWQuPEREPmphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAtIElmIDxjb2RlPmV4cHJlc3Npb248L2NvZGU+IGlzIDxjb2RlPm51bGw8L2NvZGU+LjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iY29tcGlsZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0KY29tcGlsZTwvSDM+DQo8UFJFPg0KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aEV4cHJlc3Npb24uaHRtbCI+WFBhdGhFeHByZXNzaW9uPC9BPiA8Qj5jb21waWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZXhwcmVzc2lvbikKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aEV4cHJlc3Npb25FeGNlcHRpb24uaHRtbCI+WFBhdGhFeHByZXNzaW9uRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPjxwPkNvbXBpbGUgYW4gWFBhdGggZXhwcmVzc2lvbiBmb3IgbGF0ZXIgZXZhbHVhdGlvbi48L3A+CgogPHA+SWYgPGNvZGU+ZXhwcmVzc2lvbjwvY29kZT4gY29udGFpbnMgYW55IDxDT0RFPlhQYXRoRnVuY3Rpb248L0NPREU+cywKIHRoZXkgbXVzdCBiZSBhdmFpbGFibGUgdmlhIHRoZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhGdW5jdGlvblJlc29sdmVyLmh0bWwiPjxDT0RFPlhQYXRoRnVuY3Rpb25SZXNvbHZlcjwvQ09ERT48L0E+LgogQW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoRXhwcmVzc2lvbkV4Y2VwdGlvbi5odG1sIj48Q09ERT5YUGF0aEV4cHJlc3Npb25FeGNlcHRpb248L0NPREU+PC9BPiB3aWxsIGJlIHRocm93biBpZiB0aGUgPGNvZGU+WFBhdGhGdW5jdGlvbjwvY29kZT4KIGNhbm5vdCBiZSByZXNvdmxlZCB3aXRoIHRoZSA8Y29kZT5YUGF0aEZ1bmN0aW9uUmVzb2x2ZXI8L2NvZGU+LjwvcD4KIAogPHA+SWYgPGNvZGU+ZXhwcmVzc2lvbjwvY29kZT4gaXMgPGNvZGU+bnVsbDwvY29kZT4sIGEgPGNvZGU+TnVsbFBvaW50ZXJFeGNlcHRpb248L2NvZGU+IGlzIHRocm93bi48L3A+PEREPjxETD4NCjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoLmh0bWwjY29tcGlsZShqYXZhLmxhbmcuU3RyaW5nKSI+Y29tcGlsZTwvQT4gaW4gaW50ZXJmYWNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aC5odG1sIj5YUGF0aDwvQT48RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmV4cHJlc3Npb248L0NPREU+IC0gVGhlIFhQYXRoIGV4cHJlc3Npb24uPERUPjxCPlJldHVybnM6PC9CPjxERD5Db21waWxlZCBYUGF0aCBleHByZXNzaW9uLjxEVD48Qj5UaHJvd3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhFeHByZXNzaW9uRXhjZXB0aW9uLmh0bWwiPlhQYXRoRXhwcmVzc2lvbkV4Y2VwdGlvbjwvQT4gLSBJZiA8Y29kZT5leHByZXNzaW9uPC9jb2RlPiBjYW5ub3QgYmUgY29tcGlsZWQuPEREPmphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAtIElmIDxjb2RlPmV4cHJlc3Npb248L2NvZGU+IGlzIDxjb2RlPm51bGw8L2NvZGU+LjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZXZhbHVhdGUoamF2YS5sYW5nLlN0cmluZywgb3JnLnhtbC5zYXguSW5wdXRTb3VyY2UsIGphdmF4LnhtbC5uYW1lc3BhY2UuUU5hbWUpIj48IS0tIC0tPjwvQT48SDM+DQpldmFsdWF0ZTwvSDM+DQo8UFJFPg0KcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+ZXZhbHVhdGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtleHByZXNzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9JbnB1dFNvdXJjZS5odG1sIj5JbnB1dFNvdXJjZTwvQT4mbmJzcDtzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC9uYW1lc3BhY2UvUU5hbWUuaHRtbCI+UU5hbWU8L0E+Jm5ic3A7cmV0dXJuVHlwZSkKICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoRXhwcmVzc2lvbkV4Y2VwdGlvbi5odG1sIj5YUGF0aEV4cHJlc3Npb25FeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+PHA+RXZhbHVhdGUgYW4gWFBhdGggZXhwcmVzc2lvbiBpbiB0aGUgY29udGV4dCBvZiB0aGUgc3BlY2lmaWVkIDxjb2RlPklucHV0U291cmNlPC9jb2RlPgogYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIHRoZSBzcGVjaWZpZWQgdHlwZS48L3A+CgogPHA+VGhpcyBtZXRob2QgYnVpbGRzIGEgZGF0YSBtb2RlbCBmb3IgdGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L0lucHV0U291cmNlLmh0bWwiPjxDT0RFPklucHV0U291cmNlPC9DT0RFPjwvQT4gYW5kIGNhbGxzCiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3hwYXRoL2pheHAvWFBhdGhJbXBsLmh0bWwjZXZhbHVhdGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YXgueG1sLm5hbWVzcGFjZS5RTmFtZSkiPjxDT0RFPmV2YWx1YXRlKFN0cmluZyBleHByZXNzaW9uLCBPYmplY3QgaXRlbSwgUU5hbWUgcmV0dXJuVHlwZSk8L0NPREU+PC9BPiBvbiB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IG9iamVjdC48L3A+CgogPHA+U2VlICJFdmFsdWF0aW9uIG9mIFhQYXRoIEV4cHJlc3Npb25zIiBzZWN0aW9uIG9mIEpBWFAgMS4zIHNwZWMgCiBmb3IgY29udGV4dCBpdGVtIGV2YWx1YXRpb24sCiB2YXJpYWJsZSwgZnVuY3Rpb24gYW5kIFFOYW1lIHJlc29sdXRpb24gYW5kIHJldHVybiB0eXBlIGNvbnZlcnNpb24uPC9wPgoKIDxwPklmIDxjb2RlPnJldHVyblR5cGU8L2NvZGU+IGlzIG5vdCBvbmUgb2YgdGhlIHR5cGVzIGRlZmluZWQgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoQ29uc3RhbnRzLmh0bWwiPjxDT0RFPlhQYXRoQ29uc3RhbnRzPC9DT0RFPjwvQT4sCiB0aGVuIGFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLjwvcD4KCiA8cD5JZiA8Y29kZT5leHByZXNzaW9uPC9jb2RlPiwgPGNvZGU+c291cmNlPC9jb2RlPiBvciA8Y29kZT5yZXR1cm5UeXBlPC9jb2RlPiBpcyA8Y29kZT5udWxsPC9jb2RlPiwKIHRoZW4gYSA8Y29kZT5OdWxsUG9pbnRlckV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLjwvcD48REQ+PERMPg0KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGguaHRtbCNldmFsdWF0ZShqYXZhLmxhbmcuU3RyaW5nLCBvcmcueG1sLnNheC5JbnB1dFNvdXJjZSwgamF2YXgueG1sLm5hbWVzcGFjZS5RTmFtZSkiPmV2YWx1YXRlPC9BPiBpbiBpbnRlcmZhY2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoLmh0bWwiPlhQYXRoPC9BPjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZXhwcmVzc2lvbjwvQ09ERT4gLSBUaGUgWFBhdGggZXhwcmVzc2lvbi48REQ+PENPREU+c291cmNlPC9DT0RFPiAtIFRoZSBpbnB1dCBzb3VyY2Ugb2YgdGhlIGRvY3VtZW50IHRvIGV2YWx1YXRlIG92ZXIuPEREPjxDT0RFPnJldHVyblR5cGU8L0NPREU+IC0gVGhlIGRlc2lyZWQgcmV0dXJuIHR5cGUuPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgPGNvZGU+T2JqZWN0PC9jb2RlPiB0aGF0IGVuY2Fwc3VsYXRlcyB0aGUgcmVzdWx0IG9mIGV2YWx1YXRpbmcgdGhlIGV4cHJlc3Npb24uPERUPjxCPlRocm93czo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aEV4cHJlc3Npb25FeGNlcHRpb24uaHRtbCI+WFBhdGhFeHByZXNzaW9uRXhjZXB0aW9uPC9BPiAtIElmIGV4cHJlc3Npb24gY2Fubm90IGJlIGV2YWx1YXRlZC48REQ+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAtIElmIDxjb2RlPnJldHVyblR5cGU8L2NvZGU+IGlzIG5vdCBvbmUgb2YgdGhlIHR5cGVzIGRlZmluZWQgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoQ29uc3RhbnRzLmh0bWwiPjxDT0RFPlhQYXRoQ29uc3RhbnRzPC9DT0RFPjwvQT4uPEREPmphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAtIElmIDxjb2RlPmV4cHJlc3Npb248L2NvZGU+LCA8Y29kZT5zb3VyY2U8L2NvZGU+IG9yIDxjb2RlPnJldHVyblR5cGU8L2NvZGU+CiAgIGlzIDxjb2RlPm51bGw8L2NvZGU+LjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZXZhbHVhdGUoamF2YS5sYW5nLlN0cmluZywgb3JnLnhtbC5zYXguSW5wdXRTb3VyY2UpIj48IS0tIC0tPjwvQT48SDM+DQpldmFsdWF0ZTwvSDM+DQo8UFJFPg0KcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+ZXZhbHVhdGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtleHByZXNzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9JbnB1dFNvdXJjZS5odG1sIj5JbnB1dFNvdXJjZTwvQT4mbmJzcDtzb3VyY2UpCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aEV4cHJlc3Npb25FeGNlcHRpb24uaHRtbCI+WFBhdGhFeHByZXNzaW9uRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPjxwPkV2YWx1YXRlIGFuIFhQYXRoIGV4cHJlc3Npb24gaW4gdGhlIGNvbnRleHQgb2YgdGhlIHNwZWNpZmllZCA8Y29kZT5JbnB1dFNvdXJjZTwvY29kZT4KIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcyBhIDxjb2RlPlN0cmluZzwvY29kZT4uPC9wPgoKIDxwPlRoaXMgbWV0aG9kIGNhbGxzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveHBhdGgvamF4cC9YUGF0aEltcGwuaHRtbCNldmFsdWF0ZShqYXZhLmxhbmcuU3RyaW5nLCBvcmcueG1sLnNheC5JbnB1dFNvdXJjZSwgamF2YXgueG1sLm5hbWVzcGFjZS5RTmFtZSkiPjxDT0RFPmV2YWx1YXRlKFN0cmluZyBleHByZXNzaW9uLCBJbnB1dFNvdXJjZSBzb3VyY2UsIFFOYW1lIHJldHVyblR5cGUpPC9DT0RFPjwvQT4gd2l0aCBhCiA8Y29kZT5yZXR1cm5UeXBlPC9jb2RlPiBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhDb25zdGFudHMuaHRtbCNTVFJJTkciPjxDT0RFPlhQYXRoQ29uc3RhbnRzLlNUUklORzwvQ09ERT48L0E+LjwvcD4KCiA8cD5TZWUgIkV2YWx1YXRpb24gb2YgWFBhdGggRXhwcmVzc2lvbnMiIHNlY3Rpb24gb2YgSkFYUCAxLjMgc3BlYwogZm9yIGNvbnRleHQgaXRlbSBldmFsdWF0aW9uLAogdmFyaWFibGUsIGZ1bmN0aW9uIGFuZCBRTmFtZSByZXNvbHV0aW9uIGFuZCByZXR1cm4gdHlwZSBjb252ZXJzaW9uLjwvcD4KCiA8cD5JZiA8Y29kZT5leHByZXNzaW9uPC9jb2RlPiBvciA8Y29kZT5zb3VyY2U8L2NvZGU+IGlzIDxjb2RlPm51bGw8L2NvZGU+LAogdGhlbiBhIDxjb2RlPk51bGxQb2ludGVyRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uPC9wPjxERD48REw+DQo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aC5odG1sI2V2YWx1YXRlKGphdmEubGFuZy5TdHJpbmcsIG9yZy54bWwuc2F4LklucHV0U291cmNlKSI+ZXZhbHVhdGU8L0E+IGluIGludGVyZmFjZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGguaHRtbCI+WFBhdGg8L0E+PERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5leHByZXNzaW9uPC9DT0RFPiAtIFRoZSBYUGF0aCBleHByZXNzaW9uLjxERD48Q09ERT5zb3VyY2U8L0NPREU+IC0gVGhlIDxjb2RlPklucHV0U291cmNlPC9jb2RlPiBvZiB0aGUgZG9jdW1lbnQgdG8gZXZhbHVhdGUgb3Zlci48RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBldmFsdWF0aW5nIHRoZSBleHByZXNzaW9uIGFuZAogICBjb252ZXJ0aW5nIHRoZSByZXN1bHQgdG8gYSA8Y29kZT5TdHJpbmc8L2NvZGU+LjxEVD48Qj5UaHJvd3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGhFeHByZXNzaW9uRXhjZXB0aW9uLmh0bWwiPlhQYXRoRXhwcmVzc2lvbkV4Y2VwdGlvbjwvQT4gLSBJZiBleHByZXNzaW9uIGNhbm5vdCBiZSBldmFsdWF0ZWQuPEREPmphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAtIElmIDxjb2RlPmV4cHJlc3Npb248L2NvZGU+IG9yIDxjb2RlPnNvdXJjZTwvY29kZT4gaXMgPGNvZGU+bnVsbDwvY29kZT4uPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJyZXNldCgpIj48IS0tIC0tPjwvQT48SDM+DQpyZXNldDwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+cmVzZXQ8L0I+KCk8L1BSRT4NCjxETD4NCjxERD48cD5SZXNldCB0aGlzIDxjb2RlPlhQYXRoPC9jb2RlPiB0byBpdHMgb3JpZ2luYWwgY29uZmlndXJhdGlvbi48L3A+CgogPHA+PGNvZGU+WFBhdGg8L2NvZGU+IGlzIHJlc2V0IHRvIHRoZSBzYW1lIHN0YXRlIGFzIHdoZW4gaXQgd2FzIGNyZWF0ZWQgd2l0aAogPENPREU+WFBhdGhGYWN0b3J5I25ld1hQYXRoKCk8L0NPREU+LgogPGNvZGU+cmVzZXQoKTwvY29kZT4gaXMgZGVzaWduZWQgdG8gYWxsb3cgdGhlIHJldXNlIG9mIGV4aXN0aW5nIDxjb2RlPlhQYXRoPC9jb2RlPnMKIHRodXMgc2F2aW5nIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGNyZWF0aW9uIG9mIG5ldyA8Y29kZT5YUGF0aDwvY29kZT5zLjwvcD4KCiA8cD5UaGUgcmVzZXQgPGNvZGU+WFBhdGg8L2NvZGU+IGlzIG5vdCBndWFyYW50ZWVkIHRvIGhhdmUgdGhlIHNhbWUKIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aEZ1bmN0aW9uUmVzb2x2ZXIuaHRtbCI+PENPREU+WFBhdGhGdW5jdGlvblJlc29sdmVyPC9DT0RFPjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC94cGF0aC9YUGF0aFZhcmlhYmxlUmVzb2x2ZXIuaHRtbCI+PENPREU+WFBhdGhWYXJpYWJsZVJlc29sdmVyPC9DT0RFPjwvQT4KIG9yIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC9uYW1lc3BhY2UvTmFtZXNwYWNlQ29udGV4dC5odG1sIj48Q09ERT5OYW1lc3BhY2VDb250ZXh0PC9DT0RFPjwvQT4gPGNvZGU+T2JqZWN0PC9jb2RlPnMsIGUuZy4gPENPREU+T2JqZWN0LmVxdWFscyhPYmplY3Qgb2JqKTwvQ09ERT4uCiBJdCBpcyBndWFyYW50ZWVkIHRvIGhhdmUgYSBmdW5jdGlvbmFsbHkgZXF1YWwgPGNvZGU+WFBhdGhGdW5jdGlvblJlc29sdmVyPC9jb2RlPiwKIDxjb2RlPlhQYXRoVmFyaWFibGVSZXNvbHZlcjwvY29kZT4KIGFuZCA8Y29kZT5OYW1lc3BhY2VDb250ZXh0PC9jb2RlPi48L3A+PEREPjxETD4NCjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3hwYXRoL1hQYXRoLmh0bWwjcmVzZXQoKSI+cmVzZXQ8L0E+IGluIGludGVyZmFjZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwveHBhdGgvWFBhdGguaHRtbCI+WFBhdGg8L0E+PC9ETD4NCjwvREQ+DQo8L0RMPg0KPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPg0KPEhSPg0KDQo8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+DQo8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+DQo8VFI+DQo8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+DQo8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4NCiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvWFBhdGhJbXBsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8L1RSPg0KPC9UQUJMRT4NCjwvVEQ+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4NCjwvRU0+DQo8L1REPg0KPC9UUj4NCg0KPFRSPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveHBhdGgvamF4cC9YUGF0aEZhY3RvcnlJbXBsLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOw0KJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7DQombmJzcDs8QSBIUkVGPSJYUGF0aEltcGwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUj4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQogIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQpERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+DQoNCjxIUj4NCkNvcHlyaWdodCCpIDIwMDYgQXBhY2hlIFhNTCBQcm9qZWN0LiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KPC9CT0RZPg0KPC9IVE1MPg0K