PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KPCEtLU5ld1BhZ2UtLT4KPEhUTUw+CjxIRUFEPgo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFdlZCBBcHIgMTQgMDg6MjY6MzIgRURUIDIwMDQgLS0+CjxUSVRMRT4KVmVsb2NpdHkgMS40IEFQSTogQ2xhc3MgIFJ1bnRpbWVJbnN0YW5jZQo8L1RJVExFPgo8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+CjwvSEVBRD4KPEJPRFkgQkdDT0xPUj0id2hpdGUiPgoKPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgo8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+CjxUUj4KPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgo8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1J1bnRpbWVJbnN0YW5jZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDwvVFI+CjwvVEFCTEU+CjwvVEQ+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgo8L0VNPgo8L1REPgo8L1RSPgoKPFRSPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTaW5nbGV0b24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+CjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CiAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CiZuYnNwOzxBIEhSRUY9IlJ1bnRpbWVJbnN0YW5jZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+CjwvVFI+CjxUUj4KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgpERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+CjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KCjxIUj4KPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgo8SDI+CjxGT05UIFNJWkU9Ii0xIj4Kb3JnLmFwYWNoZS52ZWxvY2l0eS5ydW50aW1lPC9GT05UPgo8QlI+CkNsYXNzICBSdW50aW1lSW5zdGFuY2U8L0gyPgo8UFJFPgpqYXZhLmxhbmcuT2JqZWN0CiAgfAogICstLTxCPm9yZy5hcGFjaGUudmVsb2NpdHkucnVudGltZS5SdW50aW1lSW5zdGFuY2U8L0I+CjwvUFJFPgo8REw+CjxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sIj5SdW50aW1lQ29uc3RhbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVMb2dnZXIuaHRtbCI+UnVudGltZUxvZ2dlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvREQ+CjwvREw+CjxIUj4KPERMPgo8RFQ+cHVibGljIGNsYXNzIDxCPlJ1bnRpbWVJbnN0YW5jZTwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCI+UnVudGltZUNvbnN0YW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvREw+Cgo8UD4KVGhpcyBpcyB0aGUgUnVudGltZSBzeXN0ZW0gZm9yIFZlbG9jaXR5LiBJdCBpcyB0aGUKIHNpbmdsZSBhY2Nlc3MgcG9pbnQgZm9yIGFsbCBmdW5jdGlvbmFsaXR5IGluIFZlbG9jaXR5LgogSXQgYWRoZXJlcyB0byB0aGUgbWVkaWF0b3IgcGF0dGVybiBhbmQgaXMgdGhlIG9ubHkKIHN0cnVjdHVyZSB0aGF0IGRldmVsb3BlcnMgbmVlZCB0byBiZSBmYW1pbGlhciB3aXRoCiBpbiBvcmRlciB0byBnZXQgVmVsb2NpdHkgdG8gcGVyZm9ybS4KCiBUaGUgUnVudGltZSB3aWxsIGFsc28gY29vcGVyYXRlIHdpdGggZXh0ZXJuYWwKIHN5c3RlbXMgbGlrZSBUdXJiaW5lLiBSdW50aW1lIHByb3BlcnRpZXMgY2FuCiBzZXQgYW5kIHRoZW4gdGhlIFJ1bnRpbWUgaXMgaW5pdGlhbGl6ZWQuCgogVHVyYmluZSwgZm9yIGV4YW1wbGUsIGtub3dzIHdoZXJlIHRoZSB0ZW1wbGF0ZXMKIGFyZSB0byBiZSBsb2FkZWQgZnJvbSwgYW5kIHdoZXJlIHRoZSBWZWxvY2l0eQogbG9nIGZpbGUgc2hvdWxkIGJlIHBsYWNlZC4KCiBTbyBpbiB0aGUgY2FzZSBvZiBWZWxvY2l0eSBjb29wZXJhdGluZyB3aXRoIFR1cmJpbmUKIHRoZSBjb2RlIG1pZ2h0IGxvb2sgc29tZXRoaW5nIGxpa2UgdGhlIGZvbGxvd2luZzoKCiA8YmxvY2txdW90ZT48Y29kZT48cHJlPgogcmkuc2V0UHJvcGVydHkoUnVudGltZS5GSUxFX1JFU09VUkNFX0xPQURFUl9QQVRILCB0ZW1wbGF0ZVBhdGgpOwogcmkuc2V0UHJvcGVydHkoUnVudGltZS5SVU5USU1FX0xPRywgcGF0aFRvVmVsb2NpdHlMb2cpOwogcmkuaW5pdCgpOwogPC9wcmU+PC9jb2RlPjwvYmxvY2txdW90ZT4KCiA8cHJlPgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIE4gTyBUIEUgUyAgTyBOICBSIFUgTiBUIEkgTSBFICBJIE4gSSBUIEkgQSBMIEkgWiBBIFQgSSBPIE4KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbml0KCkKIAogSWYgaW5pdCgpIGlzIGNhbGxlZCBieSBpdHNlbGYgdGhlIFJ1bnRpbWVJbnN0YW5jZSB3aWxsIGluaXRpYWxpemUKIHdpdGggYSBzZXQgb2YgZGVmYXVsdCB2YWx1ZXMuCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogaW5pdChTdHJpbmcvUHJvcGVydGllcykKCiBJbiB0aGlzIGNhc2UgdGhlIGRlZmF1bHQgdmVsb2NpdHkgcHJvcGVydGllcyBhcmUgbGF5ZWQgZG93bgogZmlyc3QgdG8gcHJvdmlkZSBhIHNvbGlkIGJhc2UsIHRoZW4gYW55IHByb3BlcnRpZXMgcHJvdmlkZWQKIGluIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG9iamVjdCB3aWxsIG92ZXJyaWRlIHRoZSBjb3JyZXNwb25kaW5nCiBkZWZhdWx0IHByb3BlcnR5LgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDwvcHJlPgo8UD4KPERMPgo8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kSWQ6IFJ1bnRpbWVJbnN0YW5jZS5qYXZhLHYgMS4xOS40LjEgMjAwNC8wMy8wMyAyMzoyMjo1NSBnZWlybSBFeHAgJDwvREQ+CjxEVD48Qj5BdXRob3I6IDwvQj48REQ+PGEgaHJlZj0ibWFpbHRvOmp2YW56eWxAYXBhY2hlLm9yZyI+SmFzb24gdmFuIFp5bDwvYT4sIDxhIGhyZWY9Im1haWx0bzpqbGJAaG91c2VvZmRpc3RyYWN0aW9uLmNvbSI+SmVmZiBCb3dkZW48L2E+LCA8YSBocmVmPSJtYWlsdG86Z2Vpcm1Ab3B0b25saW5lLm5ldCI+R2VpciBNYWd1c3NvbiBKci48L2E+PC9ERD4KPC9ETD4KPEhSPgoKPFA+CjwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KCgo8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+Cgo8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2FwcGxpY2F0aW9uQXR0cmlidXRlcyI+YXBwbGljYXRpb25BdHRyaWJ1dGVzPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByaXZhdGUgJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmNvbGxlY3Rpb25zLkV4dGVuZGVkUHJvcGVydGllczwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNjb25maWd1cmF0aW9uIj5jb25maWd1cmF0aW9uPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO09iamVjdCB0aGF0IGhvdXNlcyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvcgogdGhlIHZlbG9jaXR5IHJ1bnRpbWUuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2luaXRpYWxpemVkIj5pbml0aWFsaXplZDwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbmRpY2F0ZSB3aGV0aGVyIHRoZSBSdW50aW1lIGhhcyBiZWVuIGZ1bGx5IGluaXRpYWxpemVkLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS91dGlsL2ludHJvc3BlY3Rpb24vSW50cm9zcGVjdG9yLmh0bWwiPkludHJvc3BlY3RvcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjaW50cm9zcGVjdG9yIj5pbnRyb3NwZWN0b3I8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvbG9nL0xvZ1N5c3RlbS5odG1sIj5Mb2dTeXN0ZW08L0E+PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2xvZ1N5c3RlbSI+bG9nU3lzdGVtPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBSdW50aW1lIGxvZ2dlci48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9ucy5FeHRlbmRlZFByb3BlcnRpZXM8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjb3ZlcnJpZGluZ1Byb3BlcnRpZXMiPm92ZXJyaWRpbmdQcm9wZXJ0aWVzPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZXNlIGFyZSB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBsYWlkIGRvd24gb3ZlciB0b3AKIG9mIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgd2hlbiByZXF1ZXN0ZWQuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvU2ltcGxlUG9vbC5odG1sIj5TaW1wbGVQb29sPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNwYXJzZXJQb29sIj5wYXJzZXJQb29sPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBSdW50aW1lIHBhcnNlciBwb29sPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcmVzb3VyY2UvUmVzb3VyY2VNYW5hZ2VyLmh0bWwiPlJlc291cmNlTWFuYWdlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjcmVzb3VyY2VNYW5hZ2VyIj5yZXNvdXJjZU1hbmFnZXI8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLnV0aWwuSGFzaHRhYmxlPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI3J1bnRpbWVEaXJlY3RpdmVzIj5ydW50aW1lRGlyZWN0aXZlczwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGlzIGEgaGFzaHRhYmxlIG9mIGluaXRpYWxpemVkIGRpcmVjdGl2ZXMuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9VYmVyc3BlY3QuaHRtbCI+VWJlcnNwZWN0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCN1YmVyU3BlY3QiPnViZXJTcGVjdDwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9WZWxvY2ltYWNyb0ZhY3RvcnkuaHRtbCI+VmVsb2NpbWFjcm9GYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCN2bUZhY3RvcnkiPnZtRmFjdG9yeTwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtWZWxvY2ltYWNyb0ZhY3Rvcnkgb2JqZWN0IHRvIG1hbmFnZSBWTXM8L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS52ZWxvY2l0eS5ydW50aW1lLlJ1bnRpbWVDb25zdGFudHMiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+CjxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUudmVsb2NpdHkucnVudGltZS48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sIj5SdW50aW1lQ29uc3RhbnRzPC9BPjwvQj48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjQ09VTlRFUl9JTklUSUFMX1ZBTFVFIj5DT1VOVEVSX0lOSVRJQUxfVkFMVUU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0NPVU5URVJfTkFNRSI+Q09VTlRFUl9OQU1FPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNERUJVR19QUkVGSVgiPkRFQlVHX1BSRUZJWDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjREVGQVVMVF9SVU5USU1FX0RJUkVDVElWRVMiPkRFRkFVTFRfUlVOVElNRV9ESVJFQ1RJVkVTPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNERUZBVUxUX1JVTlRJTUVfUFJPUEVSVElFUyI+REVGQVVMVF9SVU5USU1FX1BST1BFUlRJRVM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0VOQ09ESU5HX0RFRkFVTFQiPkVOQ09ESU5HX0RFRkFVTFQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0VSUk9SX1BSRUZJWCI+RVJST1JfUFJFRklYPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNFUlJPUk1TR19FTkQiPkVSUk9STVNHX0VORDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjRVJST1JNU0dfU1RBUlQiPkVSUk9STVNHX1NUQVJUPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNGSUxFX1JFU09VUkNFX0xPQURFUl9DQUNIRSI+RklMRV9SRVNPVVJDRV9MT0FERVJfQ0FDSEU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0ZJTEVfUkVTT1VSQ0VfTE9BREVSX1BBVEgiPkZJTEVfUkVTT1VSQ0VfTE9BREVSX1BBVEg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0lORk9fUFJFRklYIj5JTkZPX1BSRUZJWDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjSU5QVVRfRU5DT0RJTkciPklOUFVUX0VOQ09ESU5HPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNJTlRFUlBPTEFURV9TVFJJTkdMSVRFUkFMUyI+SU5URVJQT0xBVEVfU1RSSU5HTElURVJBTFM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0xPR1NZU1RFTV9MT0c0Sl9FTUFJTF9CVUZGRVJfU0laRSI+TE9HU1lTVEVNX0xPRzRKX0VNQUlMX0JVRkZFUl9TSVpFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNMT0dTWVNURU1fTE9HNEpfRU1BSUxfRlJPTSI+TE9HU1lTVEVNX0xPRzRKX0VNQUlMX0ZST008L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0xPR1NZU1RFTV9MT0c0Sl9FTUFJTF9TRVJWRVIiPkxPR1NZU1RFTV9MT0c0Sl9FTUFJTF9TRVJWRVI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0xPR1NZU1RFTV9MT0c0Sl9FTUFJTF9TVUJKRUNUIj5MT0dTWVNURU1fTE9HNEpfRU1BSUxfU1VCSkVDVDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjTE9HU1lTVEVNX0xPRzRKX0VNQUlMX1RPIj5MT0dTWVNURU1fTE9HNEpfRU1BSUxfVE88L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0xPR1NZU1RFTV9MT0c0Sl9GSUxFX0JBQ0tVUFMiPkxPR1NZU1RFTV9MT0c0Sl9GSUxFX0JBQ0tVUFM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0xPR1NZU1RFTV9MT0c0Sl9GSUxFX1NJWkUiPkxPR1NZU1RFTV9MT0c0Sl9GSUxFX1NJWkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0xPR1NZU1RFTV9MT0c0Sl9QQVRURVJOIj5MT0dTWVNURU1fTE9HNEpfUEFUVEVSTjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjTE9HU1lTVEVNX0xPRzRKX1JFTU9URV9IT1NUIj5MT0dTWVNURU1fTE9HNEpfUkVNT1RFX0hPU1Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0xPR1NZU1RFTV9MT0c0Sl9SRU1PVEVfUE9SVCI+TE9HU1lTVEVNX0xPRzRKX1JFTU9URV9QT1JUPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNMT0dTWVNURU1fTE9HNEpfU1lTTE9HRF9GQUNJTElUWSI+TE9HU1lTVEVNX0xPRzRKX1NZU0xPR0RfRkFDSUxJVFk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI0xPR1NZU1RFTV9MT0c0Sl9TWVNMT0dEX0hPU1QiPkxPR1NZU1RFTV9MT0c0Sl9TWVNMT0dEX0hPU1Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI05VTUJFUl9PRl9QQVJTRVJTIj5OVU1CRVJfT0ZfUEFSU0VSUzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjT1VUUFVUX0VOQ09ESU5HIj5PVVRQVVRfRU5DT0RJTkc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI1BBUlNFX0RJUkVDVElWRV9NQVhERVBUSCI+UEFSU0VfRElSRUNUSVZFX01BWERFUFRIPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNQQVJTRVJfUE9PTF9TSVpFIj5QQVJTRVJfUE9PTF9TSVpFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNSRVNPVVJDRV9MT0FERVIiPlJFU09VUkNFX0xPQURFUjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjUkVTT1VSQ0VfTUFOQUdFUl9DQUNIRV9DTEFTUyI+UkVTT1VSQ0VfTUFOQUdFUl9DQUNIRV9DTEFTUzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjUkVTT1VSQ0VfTUFOQUdFUl9DTEFTUyI+UkVTT1VSQ0VfTUFOQUdFUl9DTEFTUzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjUkVTT1VSQ0VfTUFOQUdFUl9MT0dXSEVORk9VTkQiPlJFU09VUkNFX01BTkFHRVJfTE9HV0hFTkZPVU5EPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNSVU5USU1FX0xPRyI+UlVOVElNRV9MT0c8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI1JVTlRJTUVfTE9HX0VSUk9SX1NUQUNLVFJBQ0UiPlJVTlRJTUVfTE9HX0VSUk9SX1NUQUNLVFJBQ0U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI1JVTlRJTUVfTE9HX0lORk9fU1RBQ0tUUkFDRSI+UlVOVElNRV9MT0dfSU5GT19TVEFDS1RSQUNFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNSVU5USU1FX0xPR19MT0dTWVNURU0iPlJVTlRJTUVfTE9HX0xPR1NZU1RFTTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjUlVOVElNRV9MT0dfTE9HU1lTVEVNX0NMQVNTIj5SVU5USU1FX0xPR19MT0dTWVNURU1fQ0xBU1M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI1JVTlRJTUVfTE9HX1JFRkVSRU5DRV9MT0dfSU5WQUxJRCI+UlVOVElNRV9MT0dfUkVGRVJFTkNFX0xPR19JTlZBTElEPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNSVU5USU1FX0xPR19XQVJOX1NUQUNLVFJBQ0UiPlJVTlRJTUVfTE9HX1dBUk5fU1RBQ0tUUkFDRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjVUJFUlNQRUNUX0NMQVNTTkFNRSI+VUJFUlNQRUNUX0NMQVNTTkFNRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjVU5LTk9XTl9QUkVGSVgiPlVOS05PV05fUFJFRklYPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNWTV9DT05URVhUX0xPQ0FMU0NPUEUiPlZNX0NPTlRFWFRfTE9DQUxTQ09QRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjVk1fTElCUkFSWSI+Vk1fTElCUkFSWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjVk1fTElCUkFSWV9BVVRPUkVMT0FEIj5WTV9MSUJSQVJZX0FVVE9SRUxPQUQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI1ZNX01FU1NBR0VTX09OIj5WTV9NRVNTQUdFU19PTjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjVk1fUEVSTV9BTExPV19JTkxJTkUiPlZNX1BFUk1fQUxMT1dfSU5MSU5FPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVDb25zdGFudHMuaHRtbCNWTV9QRVJNX0FMTE9XX0lOTElORV9SRVBMQUNFX0dMT0JBTCI+Vk1fUEVSTV9BTExPV19JTkxJTkVfUkVQTEFDRV9HTE9CQUw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUNvbnN0YW50cy5odG1sI1ZNX1BFUk1fSU5MSU5FX0xPQ0FMIj5WTV9QRVJNX0lOTElORV9MT0NBTDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lQ29uc3RhbnRzLmh0bWwjV0FSTl9QUkVGSVgiPldBUk5fUFJFRklYPC9BPjwvQ09ERT48L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDsKPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgoKPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CjxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI1J1bnRpbWVJbnN0YW5jZSgpIj5SdW50aW1lSW5zdGFuY2U8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDsKPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgoKPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgo8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNhZGRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+YWRkUHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAogICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSBwcm9wZXJ0eSB0byB0aGUgY29uZmlndXJhdGlvbi48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2FkZFZlbG9jaW1hY3JvKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmdbXSwgamF2YS5sYW5nLlN0cmluZykiPmFkZFZlbG9jaW1hY3JvPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCiAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDttYWNybywKICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZ1tdJm5ic3A7YXJnQXJyYXksCiAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtzb3VyY2VUZW1wbGF0ZSk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZHMgYSBuZXcgVmVsb2NpbWFjcm8uPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNjbGVhclByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5jbGVhclByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NsZWFyIHRoZSB2YWx1ZXMgcGVydGFpbmluZyB0byBhIHBhcnRpY3VsYXIKIHByb3BlcnR5LjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvUGFyc2VyLmh0bWwiPlBhcnNlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjY3JlYXRlTmV3UGFyc2VyKCkiPmNyZWF0ZU5ld1BhcnNlcjwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSBKYXZhQ0MgZ2VuZXJhdGVkIFBhcnNlci48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2RlYnVnKGphdmEubGFuZy5PYmplY3QpIj5kZWJ1ZzwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDttZXNzYWdlKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9nIGEgZGVidWcgbWVzc2FnZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2R1bXBWTU5hbWVzcGFjZShqYXZhLmxhbmcuU3RyaW5nKSI+ZHVtcFZNTmFtZXNwYWNlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWVzcGFjZSk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3RlbGxzIHRoZSB2bUZhY3RvcnkgdG8gZHVtcCB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2Vycm9yKGphdmEubGFuZy5PYmplY3QpIj5lcnJvcjwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDttZXNzYWdlKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9nIGFuIGVycm9yIG1lc3NhZ2UuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNnZXRBcHBsaWNhdGlvbkF0dHJpYnV0ZShqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0QXBwbGljYXRpb25BdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5KTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBzcGVjaWZpZWQgYXBwbGNhdGlvbiBhdHRyaWJ1dGUuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNnZXRCb29sZWFuKGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj5nZXRCb29sZWFuPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKICAgICAgICAgICBib29sZWFuJm5ic3A7ZGVmKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Qm9vbGVhbiBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QgdG8gaGlkZSB0aGUgY29uZmlndXJhdGlvbiBpbXBsZW1lbnRhdGlvbi48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnMuRXh0ZW5kZWRQcm9wZXJ0aWVzPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2dldENvbmZpZ3VyYXRpb24oKSI+Z2V0Q29uZmlndXJhdGlvbjwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgdmVsb2NpdHkgcnVudGltZSBjb25maWd1cmF0aW9uIG9iamVjdC48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcmVzb3VyY2UvQ29udGVudFJlc291cmNlLmh0bWwiPkNvbnRlbnRSZXNvdXJjZTwvQT48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjZ2V0Q29udGVudChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0Q29udGVudDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIHN0YXRpYyBjb250ZW50IHJlc291cmNlIGZyb20gdGhlCiByZXNvdXJjZSBtYW5hZ2VyLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9yZXNvdXJjZS9Db250ZW50UmVzb3VyY2UuaHRtbCI+Q29udGVudFJlc291cmNlPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNnZXRDb250ZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRDb250ZW50PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCiAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2VuY29kaW5nKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIHN0YXRpYyBjb250ZW50IHJlc291cmNlIGZyb20gdGhlCiByZXNvdXJjZSBtYW5hZ2VyLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNnZXRJbnQoamF2YS5sYW5nLlN0cmluZykiPmdldEludDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbnQgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kIHRvIGhpZGUgdGhlIGNvbmZpZ3VyYXRpb24gaW1wbGVtZW50YXRpb24uPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2dldEludChqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj5nZXRJbnQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAogICAgICAgaW50Jm5ic3A7ZGVmYXVsdFZhbHVlKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW50IHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZCB0byBoaWRlIHRoZSBjb25maWd1cmF0aW9uIGltcGxlbWVudGF0aW9uLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvdXRpbC9pbnRyb3NwZWN0aW9uL0ludHJvc3BlY3Rvci5odG1sIj5JbnRyb3NwZWN0b3I8L0E+PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2dldEludHJvc3BlY3RvcigpIj5nZXRJbnRyb3NwZWN0b3I8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIEludHJvc3BlY3RvciBmb3IgdGhpcyBpbnN0YW5jZTwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjZ2V0TG9hZGVyTmFtZUZvclJlc291cmNlKGphdmEubGFuZy5TdHJpbmcpIj5nZXRMb2FkZXJOYW1lRm9yUmVzb3VyY2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cmVzb3VyY2VOYW1lKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGV0ZXJtaW5lcyBpcyBhIHRlbXBsYXRlIGV4aXN0cywgYW5kIHJldHVybnMgbmFtZSBvZiB0aGUgbG9hZGVyIHRoYXQgCiAgcHJvdmlkZXMgaXQuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNnZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWxsb3dzIGFuIGV4dGVybmFsIGNhbGxlciB0byBnZXQgYSBwcm9wZXJ0eS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2dldFN0cmluZyhqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0U3RyaW5nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1N0cmluZyBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QgdG8gaGlkZSB0aGUgY29uZmlndXJhdGlvbiBpbXBsZW1lbnRhdGlvbjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjZ2V0U3RyaW5nKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRTdHJpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAogICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2RlZmF1bHRWYWx1ZSk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1N0cmluZyBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2Qgd2l0aCBkZWZhdWx0IHRvIGhpZGUgdGhlCiBjb25maWd1cmF0aW9uIGltcGxlbWVudGF0aW9uLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvVGVtcGxhdGUuaHRtbCI+VGVtcGxhdGU8L0E+PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2dldFRlbXBsYXRlKGphdmEubGFuZy5TdHJpbmcpIj5nZXRUZW1wbGF0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIDxjb2RlPlRlbXBsYXRlPC9jb2RlPiBmcm9tIHRoZSByZXNvdXJjZSBtYW5hZ2VyLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvVGVtcGxhdGUuaHRtbCI+VGVtcGxhdGU8L0E+PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2dldFRlbXBsYXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRUZW1wbGF0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAogICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZW5jb2RpbmcpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgPGNvZGU+VGVtcGxhdGU8L2NvZGU+IGZyb20gdGhlIHJlc291cmNlIG1hbmFnZXI8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9VYmVyc3BlY3QuaHRtbCI+VWJlcnNwZWN0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNnZXRVYmVyc3BlY3QoKSI+Z2V0VWJlcnNwZWN0PC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgY29uZmlndXJlZCBjbGFzcyBpbnRyb3NwZWN0aW9uL3JlZmxlY3Rpb24KIGltcGxlbWVuYXRpb24uPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL2RpcmVjdGl2ZS9EaXJlY3RpdmUuaHRtbCI+RGlyZWN0aXZlPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNnZXRWZWxvY2ltYWNybyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0VmVsb2NpbWFjcm88L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dm1OYW1lLAogICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGVtcGxhdGVOYW1lKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgVmVsb2NpbWFjcm9Qcm94eSBvYmplY3QgaWYgc3RyVk1uYW1lCiBpcyBhIHZhbGlkIGN1cnJlbnQgVmVsb2NpbWFjcm8uPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNpbmZvKGphdmEubGFuZy5PYmplY3QpIj5pbmZvPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO21lc3NhZ2UpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb2cgYW4gaW5mbyBtZXNzYWdlLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjaW5pdCgpIj5pbml0PC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNpbml0KGphdmEudXRpbC5Qcm9wZXJ0aWVzKSI+aW5pdDwvQT48L0I+KGphdmEudXRpbC5Qcm9wZXJ0aWVzJm5ic3A7cCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgdGhlIFZlbG9jaXR5IFJ1bnRpbWUgd2l0aCBhIFByb3BlcnRpZXMKIG9iamVjdC48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2luaXQoamF2YS5sYW5nLlN0cmluZykiPmluaXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlndXJhdGlvbkZpbGUpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXplIHRoZSBWZWxvY2l0eSBSdW50aW1lIHdpdGggdGhlIG5hbWUgb2YKIEV4dGVuZGVkUHJvcGVydGllcyBvYmplY3QuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2luaXRpYWxpemVEaXJlY3RpdmVzKCkiPmluaXRpYWxpemVEaXJlY3RpdmVzPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2RzIGluaXRpYWxpemVzIGFsbCB0aGUgZGlyZWN0aXZlcwogdGhhdCBhcmUgdXNlZCBieSB0aGUgVmVsb2NpdHkgUnVudGltZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjaW5pdGlhbGl6ZUludHJvc3BlY3Rpb24oKSI+aW5pdGlhbGl6ZUludHJvc3BlY3Rpb248L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSBjbGFzc25hbWUgZm9yIHRoZSBVYmVyc3BlY3QgaW50cm9zcGVjdGlvbiBwYWNrYWdlIGFuZAogIGluc3RhbnRpYXRlcyBhbiBpbnN0YW5jZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjaW5pdGlhbGl6ZUxvZ2dlcigpIj5pbml0aWFsaXplTG9nZ2VyPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSB0aGUgVmVsb2NpdHkgbG9nZ2luZyBzeXN0ZW0uPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2luaXRpYWxpemVQYXJzZXJQb29sKCkiPmluaXRpYWxpemVQYXJzZXJQb29sPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZXMgdGhlIFZlbG9jaXR5IHBhcnNlciBwb29sLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNpbml0aWFsaXplUHJvcGVydGllcygpIj5pbml0aWFsaXplUHJvcGVydGllczwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgVmVsb2NpdHkgcHJvcGVydGllcywgaWYgdGhlIGRlZmF1bHQKIHByb3BlcnRpZXMgaGF2ZSBub3QgYmVlbiBsYWlkIGRvd24gZmlyc3QgdGhlbgogZG8gc28uPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2luaXRpYWxpemVSZXNvdXJjZU1hbmFnZXIoKSI+aW5pdGlhbGl6ZVJlc291cmNlTWFuYWdlcjwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjaXNWZWxvY2ltYWNybyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+aXNWZWxvY2ltYWNybzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2bU5hbWUsCiAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3RlbXBsYXRlTmFtZSk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyB0byBzZWUgaWYgYSBWTSBleGlzdHM8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjbG9hZERpcmVjdGl2ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9hZERpcmVjdGl2ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtkaXJlY3RpdmVDbGFzcywKICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2FwdGlvbik8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2luc3RhbnRpYXRlcyBhbmQgbG9hZHMgdGhlIGRpcmVjdGl2ZSB3aXRoIHNvbWUgYmFzaWMgY2hlY2tzPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI2xvZyhpbnQsIGphdmEubGFuZy5PYmplY3QpIj5sb2c8L0E+PC9CPihpbnQmbmJzcDtsZXZlbCwKICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDttZXNzYWdlKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFuZGxlIGxvZ2dpbmcuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9ub2RlL1NpbXBsZU5vZGUuaHRtbCI+U2ltcGxlTm9kZTwvQT48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjcGFyc2UoamF2YS5pby5SZWFkZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wYXJzZTwvQT48L0I+KGphdmEuaW8uUmVhZGVyJm5ic3A7cmVhZGVyLAogICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGVtcGxhdGVOYW1lKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGFyc2UgdGhlIGlucHV0IGFuZCByZXR1cm4gdGhlIHJvb3Qgb2YKIEFTVCBub2RlIHN0cnVjdHVyZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL25vZGUvU2ltcGxlTm9kZS5odG1sIj5TaW1wbGVOb2RlPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNwYXJzZShqYXZhLmlvLlJlYWRlciwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPnBhcnNlPC9BPjwvQj4oamF2YS5pby5SZWFkZXImbmJzcDtyZWFkZXIsCiAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZW1wbGF0ZU5hbWUsCiAgICAgIGJvb2xlYW4mbmJzcDtkdW1wTmFtZXNwYWNlKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGFyc2UgdGhlIGlucHV0IGFuZCByZXR1cm4gdGhlIHJvb3Qgb2YgdGhlIEFTVCBub2RlIHN0cnVjdHVyZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI3NldEFwcGxpY2F0aW9uQXR0cmlidXRlKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5zZXRBcHBsaWNhdGlvbkF0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtrZXksCiAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDtvKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNzZXRDb25maWd1cmF0aW9uKG9yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9ucy5FeHRlbmRlZFByb3BlcnRpZXMpIj5zZXRDb25maWd1cmF0aW9uPC9BPjwvQj4ob3JnLmFwYWNoZS5jb21tb25zLmNvbGxlY3Rpb25zLkV4dGVuZGVkUHJvcGVydGllcyZuYnNwO2NvbmZpZ3VyYXRpb24pPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbGxvdyBhbiBleHRlcm5hbCBzeXN0ZW0gdG8gc2V0IGFuIEV4dGVuZGVkUHJvcGVydGllcwogb2JqZWN0IHRvIHVzZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUluc3RhbmNlLmh0bWwjc2V0RGVmYXVsdFByb3BlcnRpZXMoKSI+c2V0RGVmYXVsdFByb3BlcnRpZXM8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXplcyB0aGUgVmVsb2NpdHkgUnVudGltZSB3aXRoIHByb3BlcnRpZXMgZmlsZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVJbnN0YW5jZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCiAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FsbG93cyBhbiBleHRlcm5hbCBzeXN0ZW0gdG8gc2V0IGEgcHJvcGVydHkgaW4KIHRoZSBWZWxvY2l0eSBSdW50aW1lLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCNzaG93U3RhY2tUcmFjZSgpIj5zaG93U3RhY2tUcmFjZTwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZGVkIHRoaXMgdG8gY2hlY2sgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uCiBpcyBpbml0aWFsaXplZCBiZWZvcmUgdHJ5aW5nIHRvIGdldCBwcm9wZXJ0aWVzIGZyb20gaXQuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lSW5zdGFuY2UuaHRtbCN3YXJuKGphdmEubGFuZy5PYmplY3QpIj53YXJuPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO21lc3NhZ2UpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb2cgYSB3YXJuaW5nIG1lc3NhZ2UuPC9URD4KPC9UUj4KPC9UQUJMRT4KJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgo8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+CjwvVFI+CjwvVEFCTEU+CiZuYnNwOwo8UD4KCjwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KCjxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+CjxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPC9UQUJMRT4KCjxBIE5BTUU9InZtRmFjdG9yeSI+PCEtLSAtLT48L0E+PEgzPgp2bUZhY3Rvcnk8L0gzPgo8UFJFPgpwcml2YXRlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9WZWxvY2ltYWNyb0ZhY3RvcnkuaHRtbCI+VmVsb2NpbWFjcm9GYWN0b3J5PC9BPiA8Qj52bUZhY3Rvcnk8L0I+PC9QUkU+CjxETD4KPEREPlZlbG9jaW1hY3JvRmFjdG9yeSBvYmplY3QgdG8gbWFuYWdlIFZNczwvREw+CjxIUj4KCjxBIE5BTUU9ImxvZ1N5c3RlbSI+PCEtLSAtLT48L0E+PEgzPgpsb2dTeXN0ZW08L0gzPgo8UFJFPgpwcml2YXRlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9sb2cvTG9nU3lzdGVtLmh0bWwiPkxvZ1N5c3RlbTwvQT4gPEI+bG9nU3lzdGVtPC9CPjwvUFJFPgo8REw+CjxERD5UaGUgUnVudGltZSBsb2dnZXIuICBXZSBzdGFydCB3aXRoIGFuIGluc3RhbmNlIG9mCiAgYSAncHJpbW9yZGlhbCBsb2dnZXInLCB3aGljaCBqdXN0IGNvbGxlY3RzIGxvZyBtZXNzYWdlcwogIHRoZW4sIHdoZW4gdGhlIGxvZyBzeXN0ZW0gaXMgaW5pdGlhbGl6ZWQsIHdlIGR1bXAKICBhbGwgbWVzc2FnZXMgb3V0IG9mIHRoZSBwcmltb3JkaWFsIG9uZSBpbnRvIHRoZSByZWFsIG9uZS48L0RMPgo8SFI+Cgo8QSBOQU1FPSJwYXJzZXJQb29sIj48IS0tIC0tPjwvQT48SDM+CnBhcnNlclBvb2w8L0gzPgo8UFJFPgpwcml2YXRlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvdXRpbC9TaW1wbGVQb29sLmh0bWwiPlNpbXBsZVBvb2w8L0E+IDxCPnBhcnNlclBvb2w8L0I+PC9QUkU+CjxETD4KPEREPlRoZSBSdW50aW1lIHBhcnNlciBwb29sPC9ETD4KPEhSPgoKPEEgTkFNRT0iaW5pdGlhbGl6ZWQiPjwhLS0gLS0+PC9BPjxIMz4KaW5pdGlhbGl6ZWQ8L0gzPgo8UFJFPgpwcml2YXRlIGJvb2xlYW4gPEI+aW5pdGlhbGl6ZWQ8L0I+PC9QUkU+CjxETD4KPEREPkluZGljYXRlIHdoZXRoZXIgdGhlIFJ1bnRpbWUgaGFzIGJlZW4gZnVsbHkgaW5pdGlhbGl6ZWQuPC9ETD4KPEhSPgoKPEEgTkFNRT0ib3ZlcnJpZGluZ1Byb3BlcnRpZXMiPjwhLS0gLS0+PC9BPjxIMz4Kb3ZlcnJpZGluZ1Byb3BlcnRpZXM8L0gzPgo8UFJFPgpwcml2YXRlIG9yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9ucy5FeHRlbmRlZFByb3BlcnRpZXMgPEI+b3ZlcnJpZGluZ1Byb3BlcnRpZXM8L0I+PC9QUkU+CjxETD4KPEREPlRoZXNlIGFyZSB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBsYWlkIGRvd24gb3ZlciB0b3AKIG9mIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgd2hlbiByZXF1ZXN0ZWQuPC9ETD4KPEhSPgoKPEEgTkFNRT0icnVudGltZURpcmVjdGl2ZXMiPjwhLS0gLS0+PC9BPjxIMz4KcnVudGltZURpcmVjdGl2ZXM8L0gzPgo8UFJFPgpwcml2YXRlIGphdmEudXRpbC5IYXNodGFibGUgPEI+cnVudGltZURpcmVjdGl2ZXM8L0I+PC9QUkU+CjxETD4KPEREPlRoaXMgaXMgYSBoYXNodGFibGUgb2YgaW5pdGlhbGl6ZWQgZGlyZWN0aXZlcy4KIFRoZSBkaXJlY3RpdmVzIHRoYXQgcG9wdWxhdGUgdGhpcyBoYXNodGFibGUgYXJlCiB0YWtlbiBmcm9tIHRoZSBSVU5USU1FX0RFRkFVTFRfRElSRUNUSVZFUwogcHJvcGVydHkgZmlsZS4gVGhpcyBoYXNodGFibGUgaXMgcGFzc2VkCiB0byBlYWNoIHBhcnNlciB0aGF0IGlzIGNyZWF0ZWQuPC9ETD4KPEhSPgoKPEEgTkFNRT0iY29uZmlndXJhdGlvbiI+PCEtLSAtLT48L0E+PEgzPgpjb25maWd1cmF0aW9uPC9IMz4KPFBSRT4KcHJpdmF0ZSBvcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnMuRXh0ZW5kZWRQcm9wZXJ0aWVzIDxCPmNvbmZpZ3VyYXRpb248L0I+PC9QUkU+CjxETD4KPEREPk9iamVjdCB0aGF0IGhvdXNlcyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvcgogdGhlIHZlbG9jaXR5IHJ1bnRpbWUuIFRoZSBFeHRlbmRlZFByb3BlcnRpZXMgb2JqZWN0IGFsbG93cwogdGhlIGNvbnZlbmllbnQgcmV0cmlldmFsIG9mIGEgc3Vic2V0IG9mIHByb3BlcnRpZXMuCiBGb3IgZXhhbXBsZSBhbGwgdGhlIHByb3BlcnRpZXMgZm9yIGEgcmVzb3VyY2UgbG9hZGVyCiBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlIG1haW4gRXh0ZW5kZWRQcm9wZXJ0aWVzIG9iamVjdAogdXNpbmcgc29tZXRoaW5nIGxpa2UgdGhlIGZvbGxvd2luZzoKCiBFeHRlbmRlZFByb3BlcnRpZXMgbG9hZGVyQ29uZmlndXJhdGlvbiA9IAogICAgICAgICBjb25maWd1cmF0aW9uLnN1YnNldChsb2FkZXJJRCk7CgogQW5kIGEgY29uZmlndXJhdGlvbiBpcyBhIGxvdCBtb3JlIGNvbnZlbmllbnQgdG8gZGVhbAogd2l0aCB0aGVuIGNvbnZlbnRpb25hbCBwcm9wZXJ0aWVzIG9iamVjdHMsIG9yIE1hcHMuPC9ETD4KPEhSPgoKPEEgTkFNRT0icmVzb3VyY2VNYW5hZ2VyIj48IS0tIC0tPjwvQT48SDM+CnJlc291cmNlTWFuYWdlcjwvSDM+CjxQUkU+CnByaXZhdGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3Jlc291cmNlL1Jlc291cmNlTWFuYWdlci5odG1sIj5SZXNvdXJjZU1hbmFnZXI8L0E+IDxCPnJlc291cmNlTWFuYWdlcjwvQj48L1BSRT4KPERMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJpbnRyb3NwZWN0b3IiPjwhLS0gLS0+PC9BPjxIMz4KaW50cm9zcGVjdG9yPC9IMz4KPFBSRT4KcHJpdmF0ZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9JbnRyb3NwZWN0b3IuaHRtbCI+SW50cm9zcGVjdG9yPC9BPiA8Qj5pbnRyb3NwZWN0b3I8L0I+PC9QUkU+CjxETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iYXBwbGljYXRpb25BdHRyaWJ1dGVzIj48IS0tIC0tPjwvQT48SDM+CmFwcGxpY2F0aW9uQXR0cmlidXRlczwvSDM+CjxQUkU+CnByaXZhdGUgamF2YS51dGlsLk1hcCA8Qj5hcHBsaWNhdGlvbkF0dHJpYnV0ZXM8L0I+PC9QUkU+CjxETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0idWJlclNwZWN0Ij48IS0tIC0tPjwvQT48SDM+CnViZXJTcGVjdDwvSDM+CjxQUkU+CnByaXZhdGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS91dGlsL2ludHJvc3BlY3Rpb24vVWJlcnNwZWN0Lmh0bWwiPlViZXJzcGVjdDwvQT4gPEI+dWJlclNwZWN0PC9CPjwvUFJFPgo8REw+CjwvREw+Cgo8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+Cgo8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgo8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+Cgo8QSBOQU1FPSJSdW50aW1lSW5zdGFuY2UoKSI+PCEtLSAtLT48L0E+PEgzPgpSdW50aW1lSW5zdGFuY2U8L0gzPgo8UFJFPgpwdWJsaWMgPEI+UnVudGltZUluc3RhbmNlPC9CPigpPC9QUkU+CjxETD4KPC9ETD4KCjwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KCjxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgo8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgoKPEEgTkFNRT0iaW5pdCgpIj48IS0tIC0tPjwvQT48SDM+CmluaXQ8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5pbml0PC9CPigpCiAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sI2luaXQoKSI+aW5pdDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwiPlJ1bnRpbWVTZXJ2aWNlczwvQT48L0NPREU+PC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iaW5pdGlhbGl6ZUludHJvc3BlY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgppbml0aWFsaXplSW50cm9zcGVjdGlvbjwvSDM+CjxQUkU+CnByaXZhdGUgdm9pZCA8Qj5pbml0aWFsaXplSW50cm9zcGVjdGlvbjwvQj4oKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD5HZXRzIHRoZSBjbGFzc25hbWUgZm9yIHRoZSBVYmVyc3BlY3QgaW50cm9zcGVjdGlvbiBwYWNrYWdlIGFuZAogIGluc3RhbnRpYXRlcyBhbiBpbnN0YW5jZS48REQ+PERMPgo8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJzZXREZWZhdWx0UHJvcGVydGllcygpIj48IS0tIC0tPjwvQT48SDM+CnNldERlZmF1bHRQcm9wZXJ0aWVzPC9IMz4KPFBSRT4KcHJpdmF0ZSB2b2lkIDxCPnNldERlZmF1bHRQcm9wZXJ0aWVzPC9CPigpPC9QUkU+CjxETD4KPEREPkluaXRpYWxpemVzIHRoZSBWZWxvY2l0eSBSdW50aW1lIHdpdGggcHJvcGVydGllcyBmaWxlLgogVGhlIHByb3BlcnRpZXMgZmlsZSBtYXkgYmUgaW4gdGhlIGZpbGUgc3lzdGVtIHByb3BlciwKIG9yIHRoZSBwcm9wZXJ0aWVzIGZpbGUgbWF5IGJlIGluIHRoZSBjbGFzc3BhdGguPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4Kc2V0UHJvcGVydHk8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvUFJFPgo8REw+CjxERD5BbGxvd3MgYW4gZXh0ZXJuYWwgc3lzdGVtIHRvIHNldCBhIHByb3BlcnR5IGluCiB0aGUgVmVsb2NpdHkgUnVudGltZS48REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sIj5SdW50aW1lU2VydmljZXM8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+U3RyaW5nPC9DT0RFPiAtIHByb3BlcnR5IGtleTxERD48Q09ERT5TdHJpbmc8L0NPREU+IC0gcHJvcGVydHkgdmFsdWU8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJzZXRDb25maWd1cmF0aW9uKG9yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9ucy5FeHRlbmRlZFByb3BlcnRpZXMpIj48IS0tIC0tPjwvQT48SDM+CnNldENvbmZpZ3VyYXRpb248L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5zZXRDb25maWd1cmF0aW9uPC9CPihvcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnMuRXh0ZW5kZWRQcm9wZXJ0aWVzJm5ic3A7Y29uZmlndXJhdGlvbik8L1BSRT4KPERMPgo8REQ+QWxsb3cgYW4gZXh0ZXJuYWwgc3lzdGVtIHRvIHNldCBhbiBFeHRlbmRlZFByb3BlcnRpZXMKIG9iamVjdCB0byB1c2UuIFRoaXMgaXMgdXNlZnVsIHdoZXJlIHRoZSBleHRlcm5hbAogc3lzdGVtIGFsc28gdXNlcyB0aGUgRXh0ZW5kZWRQcm9wZXJ0aWVzIGNsYXNzIGFuZAogdGhlIHZlbG9jaXR5IGNvbmZpZ3VyYXRpb24gaXMgYSBzdWJzZXQgb2YKIHBhcmVudCBhcHBsaWNhdGlvbidzIGNvbmZpZ3VyYXRpb24uIFRoaXMgaXMKIHRoZSBjYXNlIHdpdGggVHVyYmluZS48REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCNzZXRDb25maWd1cmF0aW9uKG9yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9ucy5FeHRlbmRlZFByb3BlcnRpZXMpIj5zZXRDb25maWd1cmF0aW9uPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPkV4dGVuZGVkUHJvcGVydGllczwvQ09ERT4gLSBjb25maWd1cmF0aW9uPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iYWRkUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KYWRkUHJvcGVydHk8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5hZGRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvUFJFPgo8REw+CjxERD5BZGQgYSBwcm9wZXJ0eSB0byB0aGUgY29uZmlndXJhdGlvbi4gSWYgaXQgYWxyZWFkeQogZXhpc3RzIHRoZW4gdGhlIHZhbHVlIHN0YXRlZCBoZXJlIHdpbGwgYmUgYWRkZWQKIHRvIHRoZSBjb25maWd1cmF0aW9uIGVudHJ5LiBGb3IgZXhhbXBsZSwgaWYKCiByZXNvdXJjZS5sb2FkZXIgPSBmaWxlCgogaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBjb25maWd1cmF0aW9uIGFuZCB5b3UKCiBhZGRQcm9wZXJ0eSgicmVzb3VyY2UubG9hZGVyIiwgImNsYXNzcGF0aCIpCgogVGhlbiB5b3Ugd2lsbCBlbmQgdXAgd2l0aCBhIFZlY3RvciBsaWtlIHRoZQogZm9sbG93aW5nOgoKIFsiZmlsZSIsICJjbGFzc3BhdGgiXTxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sI2FkZFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5hZGRQcm9wZXJ0eTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwiPlJ1bnRpbWVTZXJ2aWNlczwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5TdHJpbmc8L0NPREU+IC0ga2V5PEREPjxDT0RFPlN0cmluZzwvQ09ERT4gLSB2YWx1ZTwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImNsZWFyUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KY2xlYXJQcm9wZXJ0eTwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPmNsZWFyUHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+CjxETD4KPEREPkNsZWFyIHRoZSB2YWx1ZXMgcGVydGFpbmluZyB0byBhIHBhcnRpY3VsYXIKIHByb3BlcnR5LjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sI2NsZWFyUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPmNsZWFyUHJvcGVydHk8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sIj5SdW50aW1lU2VydmljZXM8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+U3RyaW5nPC9DT0RFPiAtIGtleSBvZiBwcm9wZXJ0eSB0byBjbGVhcjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CmdldFByb3BlcnR5PC9IMz4KPFBSRT4KcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Z2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+CjxETD4KPEREPkFsbG93cyBhbiBleHRlcm5hbCBjYWxsZXIgdG8gZ2V0IGEgcHJvcGVydHkuICBUaGUgY2FsbGluZwogIHJvdXRpbmUgaXMgcmVxdWlyZWQgdG8ga25vdyB0aGUgdHlwZSwgYXMgdGhpcyByb3V0aW5lCiAgd2lsbCByZXR1cm4gYW4gT2JqZWN0LCBhcyB0aGF0IGlzIHdoYXQgcHJvcGVydGllcyBjYW4gYmUuPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjZ2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPmdldFByb3BlcnR5PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBwcm9wZXJ0eSB0byByZXR1cm48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJpbml0aWFsaXplUHJvcGVydGllcygpIj48IS0tIC0tPjwvQT48SDM+CmluaXRpYWxpemVQcm9wZXJ0aWVzPC9IMz4KPFBSRT4KcHJpdmF0ZSB2b2lkIDxCPmluaXRpYWxpemVQcm9wZXJ0aWVzPC9CPigpPC9QUkU+CjxETD4KPEREPkluaXRpYWxpemUgVmVsb2NpdHkgcHJvcGVydGllcywgaWYgdGhlIGRlZmF1bHQKIHByb3BlcnRpZXMgaGF2ZSBub3QgYmVlbiBsYWlkIGRvd24gZmlyc3QgdGhlbgogZG8gc28uIFRoZW4gcHJvY2VlZCB0byBwcm9jZXNzIGFueSBvdmVycmlkaW5nCiBwcm9wZXJ0aWVzLiBMYXlpbmcgZG93biB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzCiBnaXZlcyBhIG11Y2ggZ3JlYXRlciBjaGFuY2Ugb2YgaGF2aW5nIGEKIHdvcmtpbmcgc3lzdGVtLjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImluaXQoamF2YS51dGlsLlByb3BlcnRpZXMpIj48IS0tIC0tPjwvQT48SDM+CmluaXQ8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5pbml0PC9CPihqYXZhLnV0aWwuUHJvcGVydGllcyZuYnNwO3ApCiAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD5Jbml0aWFsaXplIHRoZSBWZWxvY2l0eSBSdW50aW1lIHdpdGggYSBQcm9wZXJ0aWVzCiBvYmplY3QuPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjaW5pdChqYXZhLnV0aWwuUHJvcGVydGllcykiPmluaXQ8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sIj5SdW50aW1lU2VydmljZXM8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+UHJvcGVydGllczwvQ09ERT4gLSAmbmJzcDs8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJpbml0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CmluaXQ8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5pbml0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlndXJhdGlvbkZpbGUpCiAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD5Jbml0aWFsaXplIHRoZSBWZWxvY2l0eSBSdW50aW1lIHdpdGggdGhlIG5hbWUgb2YKIEV4dGVuZGVkUHJvcGVydGllcyBvYmplY3QuPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjaW5pdChqYXZhLmxhbmcuU3RyaW5nKSI+aW5pdDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwiPlJ1bnRpbWVTZXJ2aWNlczwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5Qcm9wZXJ0aWVzPC9DT0RFPiAtICZuYnNwOzwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImluaXRpYWxpemVSZXNvdXJjZU1hbmFnZXIoKSI+PCEtLSAtLT48L0E+PEgzPgppbml0aWFsaXplUmVzb3VyY2VNYW5hZ2VyPC9IMz4KPFBSRT4KcHJpdmF0ZSB2b2lkIDxCPmluaXRpYWxpemVSZXNvdXJjZU1hbmFnZXI8L0I+KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImluaXRpYWxpemVMb2dnZXIoKSI+PCEtLSAtLT48L0E+PEgzPgppbml0aWFsaXplTG9nZ2VyPC9IMz4KPFBSRT4KcHJpdmF0ZSB2b2lkIDxCPmluaXRpYWxpemVMb2dnZXI8L0I+KCkKICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD5Jbml0aWFsaXplIHRoZSBWZWxvY2l0eSBsb2dnaW5nIHN5c3RlbS48REQ+PERMPgo8L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT4gLSAmbmJzcDs8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJpbml0aWFsaXplRGlyZWN0aXZlcygpIj48IS0tIC0tPjwvQT48SDM+CmluaXRpYWxpemVEaXJlY3RpdmVzPC9IMz4KPFBSRT4KcHJpdmF0ZSB2b2lkIDxCPmluaXRpYWxpemVEaXJlY3RpdmVzPC9CPigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+CjxETD4KPEREPlRoaXMgbWV0aG9kcyBpbml0aWFsaXplcyBhbGwgdGhlIGRpcmVjdGl2ZXMKIHRoYXQgYXJlIHVzZWQgYnkgdGhlIFZlbG9jaXR5IFJ1bnRpbWUuIFRoZQogZGlyZWN0aXZlcyB0byBiZSBpbml0aWFsaXplZCBhcmUgbGlzdGVkIGluCiB0aGUgUlVOVElNRV9ERUZBVUxUX0RJUkVDVElWRVMgcHJvcGVydGllcwogZmlsZS48REQ+PERMPgo8L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT4gLSAmbmJzcDs8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJsb2FkRGlyZWN0aXZlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CmxvYWREaXJlY3RpdmU8L0gzPgo8UFJFPgpwcml2YXRlIHZvaWQgPEI+bG9hZERpcmVjdGl2ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RpcmVjdGl2ZUNsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2FwdGlvbik8L1BSRT4KPERMPgo8REQ+aW5zdGFudGlhdGVzIGFuZCBsb2FkcyB0aGUgZGlyZWN0aXZlIHdpdGggc29tZSBiYXNpYyBjaGVja3M8REQ+PERMPgo8L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRpcmVjdGl2ZUNsYXNzPC9DT0RFPiAtIGNsYXNzbmFtZSBvZiBkaXJlY3RpdmUgdG8gbG9hZDwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImluaXRpYWxpemVQYXJzZXJQb29sKCkiPjwhLS0gLS0+PC9BPjxIMz4KaW5pdGlhbGl6ZVBhcnNlclBvb2w8L0gzPgo8UFJFPgpwcml2YXRlIHZvaWQgPEI+aW5pdGlhbGl6ZVBhcnNlclBvb2w8L0I+KCk8L1BSRT4KPERMPgo8REQ+SW5pdGlhbGl6ZXMgdGhlIFZlbG9jaXR5IHBhcnNlciBwb29sLgogVGhpcyBzdGlsbCBuZWVkcyB0byBiZSBpbXBsZW1lbnRlZC48REQ+PERMPgo8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJjcmVhdGVOZXdQYXJzZXIoKSI+PCEtLSAtLT48L0E+PEgzPgpjcmVhdGVOZXdQYXJzZXI8L0gzPgo8UFJFPgpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9QYXJzZXIuaHRtbCI+UGFyc2VyPC9BPiA8Qj5jcmVhdGVOZXdQYXJzZXI8L0I+KCk8L1BSRT4KPERMPgo8REQ+UmV0dXJucyBhIEphdmFDQyBnZW5lcmF0ZWQgUGFyc2VyLjxERD48REw+CjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+UGFyc2VyIGphdmFjYyBnZW5lcmF0ZWQgcGFyc2VyPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0icGFyc2UoamF2YS5pby5SZWFkZXIsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CnBhcnNlPC9IMz4KPFBSRT4KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvbm9kZS9TaW1wbGVOb2RlLmh0bWwiPlNpbXBsZU5vZGU8L0E+IDxCPnBhcnNlPC9CPihqYXZhLmlvLlJlYWRlciZuYnNwO3JlYWRlciwKICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3RlbXBsYXRlTmFtZSkKICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9QYXJzZUV4Y2VwdGlvbi5odG1sIj5QYXJzZUV4Y2VwdGlvbjwvQT48L1BSRT4KPERMPgo8REQ+UGFyc2UgdGhlIGlucHV0IGFuZCByZXR1cm4gdGhlIHJvb3Qgb2YKIEFTVCBub2RlIHN0cnVjdHVyZS4KIDxicj48YnI+CiAgSW4gdGhlIGV2ZW50IHRoYXQgaXQgcnVucyBvdXQgb2YgcGFyc2VycyBpbiB0aGUKICBwb29sLCBpdCB3aWxsIGNyZWF0ZSBhbmQgbGV0IHRoZW0gYmUgR0MnZCAKICBkeW5hbWljYWxseSwgbG9nZ2luZyB0aGF0IGl0IGhhcyB0byBkbyB0aGF0LiAgVGhpcwogIGlzIGNvbnNpZGVyZWQgYW4gZXhjZXB0aW9uYWwgY29uZGl0aW9uLiAgSXQgaXMKICBleHBlY3RlZCB0aGF0IHRoZSB1c2VyIHdpbGwgc2V0IHRoZSAKICBQQVJTRVJfUE9PTF9TSVpFIHByb3BlcnR5IGFwcHJvcHJpYXRlbHkgZm9yIHRoZWlyCiAgYXBwbGljYXRpb24uICBXZSB3aWxsIHJldmlzaXQgdGhpcy48REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCNwYXJzZShqYXZhLmlvLlJlYWRlciwgamF2YS5sYW5nLlN0cmluZykiPnBhcnNlPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPklucHV0U3RyZWFtPC9DT0RFPiAtIGlucHV0c3RyZWFtIHJldHJpZXZlZCBieSBhIHJlc291cmNlIGxvYWRlcjxERD48Q09ERT5TdHJpbmc8L0NPREU+IC0gbmFtZSBvZiB0aGUgdGVtcGxhdGUgYmVpbmcgcGFyc2VkPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0icGFyc2UoamF2YS5pby5SZWFkZXIsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CnBhcnNlPC9IMz4KPFBSRT4KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvbm9kZS9TaW1wbGVOb2RlLmh0bWwiPlNpbXBsZU5vZGU8L0E+IDxCPnBhcnNlPC9CPihqYXZhLmlvLlJlYWRlciZuYnNwO3JlYWRlciwKICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3RlbXBsYXRlTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO2R1bXBOYW1lc3BhY2UpCiAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvUGFyc2VFeGNlcHRpb24uaHRtbCI+UGFyc2VFeGNlcHRpb248L0E+PC9QUkU+CjxETD4KPEREPlBhcnNlIHRoZSBpbnB1dCBhbmQgcmV0dXJuIHRoZSByb290IG9mIHRoZSBBU1Qgbm9kZSBzdHJ1Y3R1cmUuPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjcGFyc2UoamF2YS5pby5SZWFkZXIsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj5wYXJzZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwiPlJ1bnRpbWVTZXJ2aWNlczwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5JbnB1dFN0cmVhbTwvQ09ERT4gLSBpbnB1dHN0cmVhbSByZXRyaWV2ZWQgYnkgYSByZXNvdXJjZSBsb2FkZXI8REQ+PENPREU+U3RyaW5nPC9DT0RFPiAtIG5hbWUgb2YgdGhlIHRlbXBsYXRlIGJlaW5nIHBhcnNlZDxERD48Q09ERT5kdW1wTmFtZXNwYWNlPC9DT0RFPiAtIGZsYWcgdG8gZHVtcCB0aGUgVmVsb2NpbWFjcm8gbmFtZXNwYWNlIGZvciB0aGlzIHRlbXBsYXRlPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0VGVtcGxhdGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0VGVtcGxhdGU8L0gzPgo8UFJFPgpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9UZW1wbGF0ZS5odG1sIj5UZW1wbGF0ZTwvQT4gPEI+Z2V0VGVtcGxhdGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKQogICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9leGNlcHRpb24vUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIj5SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uPC9BPiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvZXhjZXB0aW9uL1BhcnNlRXJyb3JFeGNlcHRpb24uaHRtbCI+UGFyc2VFcnJvckV4Y2VwdGlvbjwvQT4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+CjxETD4KPEREPlJldHVybnMgYSA8Y29kZT5UZW1wbGF0ZTwvY29kZT4gZnJvbSB0aGUgcmVzb3VyY2UgbWFuYWdlci4KIFRoaXMgbWV0aG9kIGFzc3VtZXMgdGhhdCB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIG9mIHRoZSAKIHRlbXBsYXRlIGlzIHNldCBieSB0aGUgPGNvZGU+aW5wdXQuZW5jb2Rpbmc8L2NvZGU+CiBwcm9wZXJ0eS4gIFRoZSBkZWZhdWx0IGlzICJJU08tODg1OS0xIjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sI2dldFRlbXBsYXRlKGphdmEubGFuZy5TdHJpbmcpIj5nZXRUZW1wbGF0ZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwiPlJ1bnRpbWVTZXJ2aWNlczwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFRoZSBmaWxlIG5hbWUgb2YgdGhlIGRlc2lyZWQgdGVtcGxhdGUuPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgdGVtcGxhdGUuPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvZXhjZXB0aW9uL1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24uaHRtbCI+UmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbjwvQT48L0NPREU+IC0gaWYgdGVtcGxhdGUgbm90IGZvdW5kCiAgICAgICAgICBmcm9tIGFueSBhdmFpbGFibGUgc291cmNlLjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L2V4Y2VwdGlvbi9QYXJzZUVycm9yRXhjZXB0aW9uLmh0bWwiPlBhcnNlRXJyb3JFeGNlcHRpb248L0E+PC9DT0RFPiAtIGlmIHRlbXBsYXRlIGNhbm5vdCBiZSBwYXJzZWQgZHVlCiAgICAgICAgICB0byBzeW50YXggKG9yIG90aGVyKSBlcnJvci48REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBlcnJvciBvY2N1cnMgaW4gdGVtcGxhdGUgaW5pdGlhbGl6YXRpb248L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJnZXRUZW1wbGF0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgpnZXRUZW1wbGF0ZTwvSDM+CjxQUkU+CnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L1RlbXBsYXRlLmh0bWwiPlRlbXBsYXRlPC9BPiA8Qj5nZXRUZW1wbGF0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZW5jb2RpbmcpCiAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L2V4Y2VwdGlvbi9SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiPlJlc291cmNlTm90Rm91bmRFeGNlcHRpb248L0E+LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9leGNlcHRpb24vUGFyc2VFcnJvckV4Y2VwdGlvbi5odG1sIj5QYXJzZUVycm9yRXhjZXB0aW9uPC9BPiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KPERMPgo8REQ+UmV0dXJucyBhIDxjb2RlPlRlbXBsYXRlPC9jb2RlPiBmcm9tIHRoZSByZXNvdXJjZSBtYW5hZ2VyPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjZ2V0VGVtcGxhdGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmdldFRlbXBsYXRlPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gVGhlICBuYW1lIG9mIHRoZSBkZXNpcmVkIHRlbXBsYXRlLjxERD48Q09ERT5lbmNvZGluZzwvQ09ERT4gLSBDaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIHRlbXBsYXRlPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgdGVtcGxhdGUuPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvZXhjZXB0aW9uL1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24uaHRtbCI+UmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbjwvQT48L0NPREU+IC0gaWYgdGVtcGxhdGUgbm90IGZvdW5kCiAgICAgICAgICBmcm9tIGFueSBhdmFpbGFibGUgc291cmNlLjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L2V4Y2VwdGlvbi9QYXJzZUVycm9yRXhjZXB0aW9uLmh0bWwiPlBhcnNlRXJyb3JFeGNlcHRpb248L0E+PC9DT0RFPiAtIGlmIHRlbXBsYXRlIGNhbm5vdCBiZSBwYXJzZWQgZHVlCiAgICAgICAgICB0byBzeW50YXggKG9yIG90aGVyKSBlcnJvci48REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBlcnJvciBvY2N1cnMgaW4gdGVtcGxhdGUgaW5pdGlhbGl6YXRpb248L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJnZXRDb250ZW50KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CmdldENvbnRlbnQ8L0gzPgo8UFJFPgpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3Jlc291cmNlL0NvbnRlbnRSZXNvdXJjZS5odG1sIj5Db250ZW50UmVzb3VyY2U8L0E+IDxCPmdldENvbnRlbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9leGNlcHRpb24vUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIj5SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uPC9BPiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvZXhjZXB0aW9uL1BhcnNlRXJyb3JFeGNlcHRpb24uaHRtbCI+UGFyc2VFcnJvckV4Y2VwdGlvbjwvQT4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+CjxETD4KPEREPlJldHVybnMgYSBzdGF0aWMgY29udGVudCByZXNvdXJjZSBmcm9tIHRoZQogcmVzb3VyY2UgbWFuYWdlci4gIFVzZXMgdGhlIGN1cnJlbnQgdmFsdWUKIGlmIElOUFVUX0VOQ09ESU5HIGFzIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcuPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjZ2V0Q29udGVudChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0Q29udGVudDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwiPlJ1bnRpbWVTZXJ2aWNlczwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgY29udGVudCByZXNvdXJjZSB0byBnZXQ8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnBhcnNlZCBDb250ZW50UmVzb3VyY2Ugb2JqZWN0IHJlYWR5IGZvciB1c2U8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9leGNlcHRpb24vUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIj5SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBpZiB0ZW1wbGF0ZSBub3QgZm91bmQKICAgICAgICAgIGZyb20gYW55IGF2YWlsYWJsZSBzb3VyY2UuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0Q29udGVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgpnZXRDb250ZW50PC9IMz4KPFBSRT4KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9yZXNvdXJjZS9Db250ZW50UmVzb3VyY2UuaHRtbCI+Q29udGVudFJlc291cmNlPC9BPiA8Qj5nZXRDb250ZW50PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtlbmNvZGluZykKICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvZXhjZXB0aW9uL1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24uaHRtbCI+UmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbjwvQT4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L2V4Y2VwdGlvbi9QYXJzZUVycm9yRXhjZXB0aW9uLmh0bWwiPlBhcnNlRXJyb3JFeGNlcHRpb248L0E+LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD5SZXR1cm5zIGEgc3RhdGljIGNvbnRlbnQgcmVzb3VyY2UgZnJvbSB0aGUKIHJlc291cmNlIG1hbmFnZXIuPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjZ2V0Q29udGVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0Q29udGVudDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwiPlJ1bnRpbWVTZXJ2aWNlczwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgY29udGVudCByZXNvdXJjZSB0byBnZXQ8REQ+PENPREU+ZW5jb2Rpbmc8L0NPREU+IC0gQ2hhcmFjdGVyIGVuY29kaW5nIHRvIHVzZTxEVD48Qj5SZXR1cm5zOjwvQj48REQ+cGFyc2VkIENvbnRlbnRSZXNvdXJjZSBvYmplY3QgcmVhZHkgZm9yIHVzZTxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L2V4Y2VwdGlvbi9SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiPlJlc291cmNlTm90Rm91bmRFeGNlcHRpb248L0E+PC9DT0RFPiAtIGlmIHRlbXBsYXRlIG5vdCBmb3VuZAogICAgICAgICAgZnJvbSBhbnkgYXZhaWxhYmxlIHNvdXJjZS48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJnZXRMb2FkZXJOYW1lRm9yUmVzb3VyY2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0TG9hZGVyTmFtZUZvclJlc291cmNlPC9IMz4KPFBSRT4KcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TG9hZGVyTmFtZUZvclJlc291cmNlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cmVzb3VyY2VOYW1lKTwvUFJFPgo8REw+CjxERD5EZXRlcm1pbmVzIGlzIGEgdGVtcGxhdGUgZXhpc3RzLCBhbmQgcmV0dXJucyBuYW1lIG9mIHRoZSBsb2FkZXIgdGhhdCAKICBwcm92aWRlcyBpdC4gIFRoaXMgaXMgYSBzbGlnaHRseSBsZXNzIGhva2V5IHdheSB0byBzdXBwb3J0CiAgdGhlIFZlbG9jaXR5LnRlbXBsYXRlRXhpc3RzKCkgdXRpbGl0eSBtZXRob2QsIHdoaWNoIHdhcyBicm9rZW4KICB3aGVuIHBlci10ZW1wbGF0ZSBlbmNvZGluZyB3YXMgaW50cm9kdWNlZC4gIFdlIGNhbiByZXZpc2l0IHRoaXMuPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjZ2V0TG9hZGVyTmFtZUZvclJlc291cmNlKGphdmEubGFuZy5TdHJpbmcpIj5nZXRMb2FkZXJOYW1lRm9yUmVzb3VyY2U8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sIj5SdW50aW1lU2VydmljZXM8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVzb3VyY2VOYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGVtcGxhdGUgb3IgY29udGVudCByZXNvdXJjZTxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Y2xhc3MgbmFtZSBvZiBsb2FkZXIgdGhhbiBjYW4gcHJvdmlkZSBpdDwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9InNob3dTdGFja1RyYWNlKCkiPjwhLS0gLS0+PC9BPjxIMz4Kc2hvd1N0YWNrVHJhY2U8L0gzPgo8UFJFPgpwcml2YXRlIGJvb2xlYW4gPEI+c2hvd1N0YWNrVHJhY2U8L0I+KCk8L1BSRT4KPERMPgo8REQ+QWRkZWQgdGhpcyB0byBjaGVjayBhbmQgbWFrZSBzdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24KIGlzIGluaXRpYWxpemVkIGJlZm9yZSB0cnlpbmcgdG8gZ2V0IHByb3BlcnRpZXMgZnJvbSBpdC4KIFRoaXMgb2NjdXJzIHdoZW4gdGhlcmUgYXJlIGVycm9ycyBkdXJpbmcgaW5pdGlhbGl6YXRpb24KIGFuZCB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIGhhdmUgeWV0IHRvIGJlIGxheWVkIGRvd24uPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0ibG9nKGludCwgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KbG9nPC9IMz4KPFBSRT4KcHJpdmF0ZSB2b2lkIDxCPmxvZzwvQj4oaW50Jm5ic3A7bGV2ZWwsCiAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO21lc3NhZ2UpPC9QUkU+CjxETD4KPEREPkhhbmRsZSBsb2dnaW5nLjxERD48REw+CjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+U3RyaW5nPC9DT0RFPiAtIG1lc3NhZ2UgdG8gbG9nPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0id2FybihqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgp3YXJuPC9IMz4KPFBSRT4KcHVibGljIHZvaWQgPEI+d2FybjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO21lc3NhZ2UpPC9QUkU+CjxETD4KPEREPkxvZyBhIHdhcm5pbmcgbWVzc2FnZS48REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lTG9nZ2VyLmh0bWwjd2FybihqYXZhLmxhbmcuT2JqZWN0KSI+d2FybjwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZUxvZ2dlci5odG1sIj5SdW50aW1lTG9nZ2VyPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPk9iamVjdDwvQ09ERT4gLSBtZXNzYWdlIHRvIGxvZzwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImluZm8oamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KaW5mbzwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPmluZm88L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDttZXNzYWdlKTwvUFJFPgo8REw+CjxERD5Mb2cgYW4gaW5mbyBtZXNzYWdlLjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVMb2dnZXIuaHRtbCNpbmZvKGphdmEubGFuZy5PYmplY3QpIj5pbmZvPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lTG9nZ2VyLmh0bWwiPlJ1bnRpbWVMb2dnZXI8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+T2JqZWN0PC9DT0RFPiAtIG1lc3NhZ2UgdG8gbG9nPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZXJyb3IoamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KZXJyb3I8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5lcnJvcjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO21lc3NhZ2UpPC9QUkU+CjxETD4KPEREPkxvZyBhbiBlcnJvciBtZXNzYWdlLjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVMb2dnZXIuaHRtbCNlcnJvcihqYXZhLmxhbmcuT2JqZWN0KSI+ZXJyb3I8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVMb2dnZXIuaHRtbCI+UnVudGltZUxvZ2dlcjwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5PYmplY3Q8L0NPREU+IC0gbWVzc2FnZSB0byBsb2c8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJkZWJ1ZyhqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgpkZWJ1ZzwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPmRlYnVnPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7bWVzc2FnZSk8L1BSRT4KPERMPgo8REQ+TG9nIGEgZGVidWcgbWVzc2FnZS48REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lTG9nZ2VyLmh0bWwjZGVidWcoamF2YS5sYW5nLk9iamVjdCkiPmRlYnVnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lTG9nZ2VyLmh0bWwiPlJ1bnRpbWVMb2dnZXI8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+T2JqZWN0PC9DT0RFPiAtIG1lc3NhZ2UgdG8gbG9nPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0U3RyaW5nKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CmdldFN0cmluZzwvSDM+CjxQUkU+CnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFN0cmluZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtkZWZhdWx0VmFsdWUpPC9QUkU+CjxETD4KPEREPlN0cmluZyBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2Qgd2l0aCBkZWZhdWx0IHRvIGhpZGUgdGhlCiBjb25maWd1cmF0aW9uIGltcGxlbWVudGF0aW9uLjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sI2dldFN0cmluZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0U3RyaW5nPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPlN0cmluZzwvQ09ERT4gLSBrZXkgcHJvcGVydHkga2V5PEREPjxDT0RFPlN0cmluZzwvQ09ERT4gLSBkZWZhdWx0VmFsdWUgIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIGtleSBub3QgCiAgICAgICAgICAgICAgIGZvdW5kIGluIHJlc291cmNlIG1hbmFnZXIuPERUPjxCPlJldHVybnM6PC9CPjxERD5TdHJpbmcgIHZhbHVlIG9mIGtleSBvciBkZWZhdWx0PC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0VmVsb2NpbWFjcm8oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0VmVsb2NpbWFjcm88L0gzPgo8UFJFPgpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL2RpcmVjdGl2ZS9EaXJlY3RpdmUuaHRtbCI+RGlyZWN0aXZlPC9BPiA8Qj5nZXRWZWxvY2ltYWNybzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZtTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGVtcGxhdGVOYW1lKTwvUFJFPgo8REw+CjxERD5SZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBWZWxvY2ltYWNyb1Byb3h5IG9iamVjdCBpZiBzdHJWTW5hbWUKIGlzIGEgdmFsaWQgY3VycmVudCBWZWxvY2ltYWNyby48REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCNnZXRWZWxvY2ltYWNybyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0VmVsb2NpbWFjcm88L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sIj5SdW50aW1lU2VydmljZXM8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+U3RyaW5nPC9DT0RFPiAtIHZtTmFtZSAgTmFtZSBvZiB2ZWxvY2ltYWNybyByZXF1ZXN0ZWQ8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlN0cmluZyBWZWxvY2ltYWNyb1Byb3h5PC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iYWRkVmVsb2NpbWFjcm8oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZ1tdLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgphZGRWZWxvY2ltYWNybzwvSDM+CjxQUkU+CnB1YmxpYyBib29sZWFuIDxCPmFkZFZlbG9jaW1hY3JvPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21hY3JvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nW10mbmJzcDthcmdBcnJheSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3NvdXJjZVRlbXBsYXRlKTwvUFJFPgo8REw+CjxERD5BZGRzIGEgbmV3IFZlbG9jaW1hY3JvLiBVc3VhbGx5IGNhbGxlZCBieSBNYWNybyBvbmx5IHdoaWxlIHBhcnNpbmcuPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjYWRkVmVsb2NpbWFjcm8oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZ1tdLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWRkVmVsb2NpbWFjcm88L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sIj5SdW50aW1lU2VydmljZXM8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+U3RyaW5nPC9DT0RFPiAtIG5hbWUgIE5hbWUgb2YgdmVsb2NpbWFjcm88REQ+PENPREU+U3RyaW5nPC9DT0RFPiAtIG1hY3JvICBTdHJpbmcgZm9ybSBvZiBtYWNybyBib2R5PEREPjxDT0RFPlN0cmluZzwvQ09ERT4gLSBhcmdBcnJheSAgQXJyYXkgb2Ygc3RyaW5ncywgY29udGFpbmluZyB0aGUgCiAgICAgICAgICAgICAgICAgICAgICAgICAjbWFjcm8oKSBhcmd1bWVudHMuICB0aGUgMHRoIGlzIHRoZSBuYW1lLjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Ym9vbGVhbiAgVHJ1ZSBpZiBhZGRlZCwgZmFsc2UgaWYgcmVqZWN0ZWQgZm9yIHNvbWUgCiAgICAgICAgICAgICAgICAgIHJlYXNvbiAoZWl0aGVyIHBhcmFtZXRlcnMgb3IgcGVybWlzc2lvbiBzZXR0aW5ncyk8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJpc1ZlbG9jaW1hY3JvKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CmlzVmVsb2NpbWFjcm88L0gzPgo8UFJFPgpwdWJsaWMgYm9vbGVhbiA8Qj5pc1ZlbG9jaW1hY3JvPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dm1OYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZW1wbGF0ZU5hbWUpPC9QUkU+CjxETD4KPEREPkNoZWNrcyB0byBzZWUgaWYgYSBWTSBleGlzdHM8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCNpc1ZlbG9jaW1hY3JvKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5pc1ZlbG9jaW1hY3JvPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB2ZWxvY2ltYWNybzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Ym9vbGVhbiAgVHJ1ZSBpZiBWTSBieSB0aGF0IG5hbWUgZXhpc3RzLCBmYWxzZSBpZiBub3Q8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJkdW1wVk1OYW1lc3BhY2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KZHVtcFZNTmFtZXNwYWNlPC9IMz4KPFBSRT4KcHVibGljIGJvb2xlYW4gPEI+ZHVtcFZNTmFtZXNwYWNlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZXNwYWNlKTwvUFJFPgo8REw+CjxERD50ZWxscyB0aGUgdm1GYWN0b3J5IHRvIGR1bXAgdGhlIHNwZWNpZmllZCBuYW1lc3BhY2UuICBUaGlzIGlzIHRvIHN1cHBvcnQKICBjbGVhcmluZyB0aGUgVk0gbGlzdCB3aGVuIGluIGlubGluZS1WTS1sb2NhbC1zY29wZSBtb2RlPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjZHVtcFZNTmFtZXNwYWNlKGphdmEubGFuZy5TdHJpbmcpIj5kdW1wVk1OYW1lc3BhY2U8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sIj5SdW50aW1lU2VydmljZXM8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldFN0cmluZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgpnZXRTdHJpbmc8L0gzPgo8UFJFPgpwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTdHJpbmc8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+CjxETD4KPEREPlN0cmluZyBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QgdG8gaGlkZSB0aGUgY29uZmlndXJhdGlvbiBpbXBsZW1lbnRhdGlvbjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sI2dldFN0cmluZyhqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0U3RyaW5nPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBwcm9wZXJ0eSBrZXk8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnZhbHVlIG9mIGtleSBvciBudWxsPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0SW50KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CmdldEludDwvSDM+CjxQUkU+CnB1YmxpYyBpbnQgPEI+Z2V0SW50PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgo8REw+CjxERD5JbnQgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kIHRvIGhpZGUgdGhlIGNvbmZpZ3VyYXRpb24gaW1wbGVtZW50YXRpb24uPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjZ2V0SW50KGphdmEubGFuZy5TdHJpbmcpIj5nZXRJbnQ8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sIj5SdW50aW1lU2VydmljZXM8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+U3RyaW5nPC9DT0RFPiAtIGtleSBwcm9wZXJ0eSBrZXk8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCB2YWx1ZTwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldEludChqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48IS0tIC0tPjwvQT48SDM+CmdldEludDwvSDM+CjxQUkU+CnB1YmxpYyBpbnQgPEI+Z2V0SW50PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAogICAgICAgICAgICAgICAgICBpbnQmbmJzcDtkZWZhdWx0VmFsdWUpPC9QUkU+CjxETD4KPEREPkludCBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QgdG8gaGlkZSB0aGUgY29uZmlndXJhdGlvbiBpbXBsZW1lbnRhdGlvbi48REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCNnZXRJbnQoamF2YS5sYW5nLlN0cmluZywgaW50KSI+Z2V0SW50PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBwcm9wZXJ0eSBrZXk8REQ+PENPREU+aW50PC9DT0RFPiAtIGRlZmF1bHQgdmFsdWU8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCAgdmFsdWU8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJnZXRCb29sZWFuKGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CmdldEJvb2xlYW48L0gzPgo8UFJFPgpwdWJsaWMgYm9vbGVhbiA8Qj5nZXRCb29sZWFuPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtkZWYpPC9QUkU+CjxETD4KPEREPkJvb2xlYW4gcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kIHRvIGhpZGUgdGhlIGNvbmZpZ3VyYXRpb24gaW1wbGVtZW50YXRpb24uPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjZ2V0Qm9vbGVhbihqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+Z2V0Qm9vbGVhbjwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwiPlJ1bnRpbWVTZXJ2aWNlczwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5TdHJpbmc8L0NPREU+IC0ga2V5ICBwcm9wZXJ0eSBrZXk8REQ+PENPREU+Ym9vbGVhbjwvQ09ERT4gLSBkZWZhdWx0IGRlZmF1bHQgdmFsdWUgaWYgcHJvcGVydHkgbm90IGZvdW5kPERUPjxCPlJldHVybnM6PC9CPjxERD5ib29sZWFuICB2YWx1ZSBvZiBrZXkgb3IgZGVmYXVsdCB2YWx1ZTwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldENvbmZpZ3VyYXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgpnZXRDb25maWd1cmF0aW9uPC9IMz4KPFBSRT4KcHVibGljIG9yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9ucy5FeHRlbmRlZFByb3BlcnRpZXMgPEI+Z2V0Q29uZmlndXJhdGlvbjwvQj4oKTwvUFJFPgo8REw+CjxERD5SZXR1cm4gdGhlIHZlbG9jaXR5IHJ1bnRpbWUgY29uZmlndXJhdGlvbiBvYmplY3QuPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjZ2V0Q29uZmlndXJhdGlvbigpIj5nZXRDb25maWd1cmF0aW9uPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkV4dGVuZGVkUHJvcGVydGllcyBjb25maWd1cmF0aW9uIG9iamVjdCB3aGljaCBob3VzZXMKICAgICAgICAgICAgICAgICAgICAgICB0aGUgdmVsb2NpdHkgcnVudGltZSBwcm9wZXJ0aWVzLjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldEludHJvc3BlY3RvcigpIj48IS0tIC0tPjwvQT48SDM+CmdldEludHJvc3BlY3RvcjwvSDM+CjxQUkU+CnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9JbnRyb3NwZWN0b3IuaHRtbCI+SW50cm9zcGVjdG9yPC9BPiA8Qj5nZXRJbnRyb3NwZWN0b3I8L0I+KCk8L1BSRT4KPERMPgo8REQ+UmV0dXJuIHRoZSBJbnRyb3NwZWN0b3IgZm9yIHRoaXMgaW5zdGFuY2U8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCNnZXRJbnRyb3NwZWN0b3IoKSI+Z2V0SW50cm9zcGVjdG9yPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJnZXRBcHBsaWNhdGlvbkF0dHJpYnV0ZShqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgpnZXRBcHBsaWNhdGlvbkF0dHJpYnV0ZTwvSDM+CjxQUkU+CnB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmdldEFwcGxpY2F0aW9uQXR0cmlidXRlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5KTwvUFJFPgo8REw+CjxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lU2VydmljZXMuaHRtbCI+UnVudGltZVNlcnZpY2VzPC9BPjwvQ09ERT48L0I+PC9ERD4KPEREPlJldHVybiB0aGUgc3BlY2lmaWVkIGFwcGxjYXRpb24gYXR0cmlidXRlLjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sI2dldEFwcGxpY2F0aW9uQXR0cmlidXRlKGphdmEubGFuZy5PYmplY3QpIj5nZXRBcHBsaWNhdGlvbkF0dHJpYnV0ZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwiPlJ1bnRpbWVTZXJ2aWNlczwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPkZvbGxvd2luZyBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPm9yZy5hcGFjaGUudmVsb2NpdHkucnVudGltZS5SdW50aW1lU2VydmljZXM8L0NPREU+PC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB0byByZXRyaWV2ZS48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJzZXRBcHBsaWNhdGlvbkF0dHJpYnV0ZShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgpzZXRBcHBsaWNhdGlvbkF0dHJpYnV0ZTwvSDM+CjxQUkU+CnB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPnNldEFwcGxpY2F0aW9uQXR0cmlidXRlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7byk8L1BSRT4KPERMPgo8REQ+PERMPgo8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJnZXRVYmVyc3BlY3QoKSI+PCEtLSAtLT48L0E+PEgzPgpnZXRVYmVyc3BlY3Q8L0gzPgo8UFJFPgpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS91dGlsL2ludHJvc3BlY3Rpb24vVWJlcnNwZWN0Lmh0bWwiPlViZXJzcGVjdDwvQT4gPEI+Z2V0VWJlcnNwZWN0PC9CPigpPC9QUkU+CjxETD4KPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL1J1bnRpbWVTZXJ2aWNlcy5odG1sIj5SdW50aW1lU2VydmljZXM8L0E+PC9DT0RFPjwvQj48L0REPgo8REQ+UmV0dXJucyB0aGUgY29uZmlndXJlZCBjbGFzcyBpbnRyb3NwZWN0aW9uL3JlZmxlY3Rpb24KIGltcGxlbWVuYXRpb24uPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwjZ2V0VWJlcnNwZWN0KCkiPmdldFViZXJzcGVjdDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNlcnZpY2VzLmh0bWwiPlJ1bnRpbWVTZXJ2aWNlczwvQT48L0NPREU+PC9ETD4KPC9ERD4KPC9ETD4KPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgo8SFI+Cgo8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+CjxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KPFRSPgo8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+CjxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgogIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUnVudGltZUluc3RhbmNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPC9UUj4KPC9UQUJMRT4KPC9URD4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+CjwvRU0+CjwvVEQ+CjwvVFI+Cgo8VFI+CjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9SdW50aW1lLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOwombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvUnVudGltZVNpbmdsZXRvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKJm5ic3A7PEEgSFJFRj0iUnVudGltZUluc3RhbmNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSPgo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgogIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+CjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CkRFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KPC9UUj4KPC9UQUJMRT4KPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgoKPEhSPgpDb3B5cmlnaHQgqSAyMDAyIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiBBbGwgUmlnaHRzIFJlc2VydmVkLgo8L0JPRFk+CjwvSFRNTD4K