IiBNZW51IFRyYW5zbGF0aW9uczoJRXNwYfFvbAoiIFByZXZpb3VzIHRyYW5zbGF0b3I6CUFsZWphbmRybyBM83Blei1WYWxlbmNpYSA8ZHJhZHVsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KIiBMYXN0IHRyYW5zbGF0b3I6CU9tYXIgQ2FtcGFnbmUgUG9sYWlubyA8b2NhbXBhZ25lQGdtYWlsLmNvbT4KIiBWZXJzaW9uOgkJNy4yLjI0NQoiIExhc3QgQ2hhbmdlOgkJMjAxMiBNYXkgMDEKIgoKIiBRdWl0IHdoZW4gbWVudSB0cmFuc2xhdGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gZG9uZS4KaWYgZXhpc3RzKCJkaWRfbWVudV90cmFucyIpCiAgZmluaXNoCmVuZGlmCmxldCBkaWRfbWVudV90cmFucyA9IDEKbGV0IHM6a2VlcGNwbz0gJmNwbwpzZXQgY3BvJnZpbQoKIiBUaGUgdHJhbnNsYXRpb25zIGJlbG93IGFyZSBpbiBsYXRpbjEsIGJ1dCB0aGV5IHdvcmsgZm9yIGNwMTI1MiwKIiBpc28tODg1OS0xNSB3aXRob3V0IGNvbnZlcnNpb24gYXMgd2VsbC4KaWYgJmVuYyAhPSAiY3AxMjUyIiAmJiAmZW5jICE9ICJpc28tODg1OS0xNSIKICBzY3JpcHRlbmNvZGluZyBsYXRpbjEKZW5kaWYKCgoiIEhlbHAgbWVudQptZW51dHJhbnMgJkhlbHAJCQlBeSZ1ZGEKbWVudXRyYW5zICZPdmVydmlldzxUYWI+PEYxPglUYWJsYVwgZGVcICZjb250ZW5pZG9zPFRhYj48RjE+Cm1lbnV0cmFucyAmVXNlclwgTWFudWFsCQkmTWFudWFsXCBkZWxcIHVzdWFyaW8KbWVudXRyYW5zICZIb3ctdG9cIGxpbmtzCSZFbmxhY2VzXCBhXCC/Q/Ntb1wgaGFnb1wuXC5cLj8KbWVudXRyYW5zICZGaW5kXC5cLlwuCQkmQnVzY2FyXCBlblwgbGFcIGF5dWRhCm1lbnV0cmFucyAmQ3JlZGl0cwkJJlJlY29ub2NpbWllbnRvcwptZW51dHJhbnMgTyZycGhhbnMJCUF5dWRlXCBhXCBsb3NcIG5p8W9zXCAmaHXpcmZhbm9zCm1lbnV0cmFucyBDbyZweWluZwkJJlTpcm1pbm9zXCBkZVwgTGljZW5jaWEKbWVudXRyYW5zIFNwb25zb3IvUmVnaXN0ZXIJQmVuZWZhY3Rvci9SZWftc3RyZXNlCm1lbnV0cmFucyAmVmVyc2lvbgkJJlZlcnNp825cIGVcIFxpbmZvcm1hY2nzblwgZGVcIGNvbmZpZ3VyYWNp824KbWVudXRyYW5zICZBYm91dAkJJkFjZXJjYVwgZGVcIFZpbQoKIiBGaWxlIG1lbnUKbWVudXRyYW5zICZGaWxlCQkJCSZBcmNoaXZvCm1lbnV0cmFucyAmT3BlblwuXC5cLjxUYWI+OmUJCSZBYnJpclwuXC5cLjxUYWI+OmUKbWVudXRyYW5zIFNwJmxpdC1PcGVuXC5cLlwuPFRhYj46c3AJQSZicmlyXCBlblwgb3RyYVwgdmVudGFuYVwuXC5cLjxUYWI+OnNwCm1lbnV0cmFucyAmTmV3PFRhYj46ZW5ldwkJJk51ZXZvPFRhYj46ZW5ldwptZW51dHJhbnMgT3BlblwgVGFiXC5cLlwuPFRhYj46dGFibmV3CUFicmlyXCBwZXMmdGHxYVwuXC5cLjxUYWI+OnRhYm5ldwptZW51dHJhbnMgJkNsb3NlPFRhYj46Y2xvc2UJCSZDZXJyYXI8VGFiPjpjbG9zZQptZW51dHJhbnMgJlNhdmU8VGFiPjp3CQkJJkd1YXJkYXI8VGFiPjp3Cm1lbnV0cmFucyBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYJR3VhcmRhclwgJmNvbW9cLlwuXC48VGFiPjpzYXYKbWVudXRyYW5zIFNwbGl0XCAmRGlmZlwgd2l0aFwuXC5cLgkmTW9zdHJhclwgZGlmZXJlbmNpYXNcIGNvblwuXC5cLgptZW51dHJhbnMgU3BsaXRcIFBhdGNoZWRcICZCeVwuXC5cLglNb3N0cmFyXCAmcGFyY2hlYWRvXCBwb3JcLlwuXC4KbWVudXRyYW5zICZQcmludAkJCSZJbXByaW1pcgptZW51dHJhbnMgU2EmdmUtRXhpdDxUYWI+OndxYQkJR3VhJnJkYXJcIHlcIHNhbGlyPFRhYj46d3FhCm1lbnV0cmFucyBFJnhpdDxUYWI+OnFhCQkJJlNhbGlyPFRhYj46cWEKCiIgRWRpdCBtZW51Cm1lbnV0cmFucyAmRWRpdAkJCQkmRWRpdGFyCm1lbnV0cmFucyAmVW5kbzxUYWI+dQkJCSZEZXNoYWNlcjxUYWI+dQptZW51dHJhbnMgJlJlZG88VGFiPl5SCQkJJlJlaGFjZXI8VGFiPl5SCm1lbnV0cmFucyBSZXAmZWF0PFRhYj5cLgkJUmVwZSZ0aXI8VGFiPlwuCm1lbnV0cmFucyBDdSZ0PFRhYj4iK3gJCQlDb3ImdGFyPFRhYj4iK3gKbWVudXRyYW5zICZDb3B5PFRhYj4iK3kJCQkmQ29waWFyPFRhYj4iK3kKbWVudXRyYW5zICZQYXN0ZTxUYWI+IitnUAkJJlBlZ2FyPFRhYj4iK2dQCm1lbnV0cmFucyBQdXRcICZCZWZvcmU8VGFiPltwCQlQb25lclwgJmFudGVzPFRhYj5bcAptZW51dHJhbnMgUHV0XCAmQWZ0ZXI8VGFiPl1wCQlQb25lclwgJmRlc3B16XM8VGFiPl1wCmlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjE2IikKICBtZW51dHJhbnMgJkRlbGV0ZTxUYWI+eAkJUyZ1cHJpbWlyPFRhYj54CmVuZGlmCm1lbnV0cmFucyAmU2VsZWN0XCBhbGw8VGFiPmdnVkcJCSZTZWxlY2Npb25hclwgdG9kbzxUYWI+Z2dWRwptZW51dHJhbnMgJkZpbmRcLlwuXC4JCQkmQnVzY2FyXC5cLlwuCm1lbnV0cmFucyAmRmluZDxUYWI+LwkJCSZCdXNjYXI8VGFiPi8KbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2VcLlwuXC4gICAgIEJ1c2NhclwgeVwgUiZlZW1wbGF6YXJcLlwuXC4KbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2U8VGFiPjolcwlCdXNjYXJcIHlcIFImZWVtcGxhemFyPFRhYj46JXMKbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2UJCUJ1c2NhclwgeVwgUiZlZW1wbGF6YXIKbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2U8VGFiPjpzCUJ1c2NhclwgeVwgUiZlZW1wbGF6YXI8VGFiPjpzCm1lbnV0cmFucyBTZXR0aW5nc1wgJldpbmRvdwkJJlZlbnRhbmFcIGRlXCBvcGNpb25lcwptZW51dHJhbnMgU3RhcnR1cFwgJlNldHRpbmdzCQlPcGNpb25lc1wgZGVcIGFycmFucXVlCSAKCiIgRWRpdC9HbG9iYWwgU2V0dGluZ3MKbWVudXRyYW5zICZHbG9iYWxcIFNldHRpbmdzCQlPcGNpb25lc1wgJmdsb2JhbGVzCgptZW51dHJhbnMgVG9nZ2xlXCBQYXR0ZXJuXCAmSGlnaGxpZ2h0PFRhYj46c2V0XCBobHMhCUFjdGl2YXIvRGVzYWN0aXZhclwgJnJlc2FsdGFkb1wgZGVcIHNpbnRheGlzPFRhYj46c2V0XCBobHMhCm1lbnV0cmFucyBUb2dnbGVcICZJZ25vcmUtY2FzZTxUYWI+OnNldFwgaWMhCQlBY3RpdmFyL0Rlc2FjdGl2YXJcICZpZ25vcmFyXCBtYXn6c2N1bGFzXCB5XCBtaW76c2N1bGFzPFRhYj46c2V0XCBpYyEKbWVudXRyYW5zIFRvZ2dsZVwgJlNob3dtYXRjaDxUYWI+OnNldFwgc20hCQlBY3RpdmFyL0Rlc2FjdGl2YXJcICZtb3N0cmFyXCBjb2luY2lkZW5jaWFzPFRhYj46c2V0XCBzbSEKCm1lbnV0cmFucyAmQ29udGV4dFwgbGluZXMJCUztbmVhc1wgZGVcICZjb250ZXh0bwoKbWVudXRyYW5zICZWaXJ0dWFsXCBFZGl0CQlFZGljafNuXCAmdmlydHVhbAptZW51dHJhbnMgTmV2ZXIJCQkJTnVuY2EKbWVudXRyYW5zIEJsb2NrXCBTZWxlY3Rpb24JCVNlbGVjY2nzblwgZGVcIGJsb3F1ZQptZW51dHJhbnMgSW5zZXJ0XCBtb2RlCQkJTW9kb1wgZGVcIGluc2VyY2nzbgptZW51dHJhbnMgQmxvY2tcIGFuZFwgSW5zZXJ0CQlCbG9xdWVcIGVcIGluc2VyY2nzbgptZW51dHJhbnMgQWx3YXlzCQkJU2llbXByZQoKbWVudXRyYW5zIFRvZ2dsZVwgSW5zZXJ0XCAmTW9kZTxUYWI+OnNldFwgaW0hCUFjdGl2YXIvRGVzYWN0aXZhclwgbW9kb1wgZGVcIGluJnNlcmNp8248VGFiPjpzZXRcIGltIQptZW51dHJhbnMgVG9nZ2xlXCBWaVwgQyZvbXBhdGlibGU8VGFiPjpzZXRcIGNwIQlBY3RpdmFyL0Rlc2FjdGl2YXJcIGNvbXBhdGlibGlkYWRcIGNvblwgVmk8VGFiPjpzZXRcIGNwIQoKbWVudXRyYW5zIFNlYXJjaFwgJlBhdGhcLlwuXC4JCVJ1dGFcIGRlXCAmYvpzcXVlZGFcLlwuXC4KCm1lbnV0cmFucyBUYSZnXCBGaWxlc1wuXC5cLgkJRmljaGVyb3NcIGRlXCAmZXRpcXVldGFzXC5cLlwuCgoiIEdVSSBvcHRpb25zCm1lbnV0cmFucyBUb2dnbGVcICZUb29sYmFyCQlPY3VsdGFyL01vc3RyYXJcIGJhcnJhXCBkZVwgJmhlcnJhbWllbnRhcwptZW51dHJhbnMgVG9nZ2xlXCAmQm90dG9tXCBTY3JvbGxiYXIJT2N1bHRhci9Nb3N0cmFyXCBiYXJyYVwgZGVcIGRlc3BsYXphbWllbnRvXCAmaW5mZXJpb3IKbWVudXRyYW5zIFRvZ2dsZVwgJkxlZnRcIFNjcm9sbGJhcglPY3VsdGFyL01vc3RyYXJcIGJhcnJhXCBkZVwgZGVzcGxhemFtaWVudG9cIGkmenF1aWVyZGEKbWVudXRyYW5zIFRvZ2dsZVwgJlJpZ2h0XCBTY3JvbGxiYXIJT2N1bHRhci9Nb3N0cmFyXCBiYXJyYVwgZGVcIGRlc3BsYXphbWllbnRvXCAmZGVyZWNoYQoKbGV0IGc6bWVudXRyYW5zX3BhdGhfZGlhbG9nID0gIkludHJvZHV6Y2EgbGEgcnV0YSBkZSBi+nNxdWVkYSBwYXJhIGxvcyBhcmNoaXZvcy5cblNlcGFyZSBsb3Mgbm9tYnJlcyBkZSBsb3MgZGlyZWN0b3Jpb3MgY29uIHVuYSBjb21hLiIKbGV0IGc6bWVudXRyYW5zX3RhZ3NfZGlhbG9nID0gIkludHJvZHV6Y2EgbG9zIG5vbWJyZXMgZGUgbG9zIGFyY2hpdm9zIGRlIHRhZ3MuXG5TZXBhcmUgbG9zIG5vbWJyZXMgY29uIHVuYSBjb21hLiIKCiIgRWRpdC9GaWxlIFNldHRpbmdzCm1lbnV0cmFucyBGJmlsZVwgU2V0dGluZ3MJCU9wY2lvbmVzXCBkZWxcICZhcmNoaXZvCgoiIEJvb2xlYW4gb3B0aW9ucwptZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmTnVtYmVyaW5nPFRhYj46c2V0XCBudSEJQWN0aXZhci9EZXNhY3RpdmFyXCAmbnVtZXJhY2nzblwgZGVcIGztbmVhczxUYWI+OnNldFwgbnUhCm1lbnV0cmFucyBUb2dnbGVcICZMaXN0XCBNb2RlPFRhYj46c2V0XCBsaXN0IQkJQWN0aXZhci9EZXNhY3RpdmFyXCBtb2RvXCBkZVwgbGlzdGE8VGFiPjpzZXRcIGxpc3QhCm1lbnV0cmFucyBUb2dnbGVcIExpbmVcICZXcmFwPFRhYj46c2V0XCB3cmFwIQkJQWN0aXZhci9EZXNhY3RpdmFyXCAmcXVpZWJyZVwgZGVcIGztbmVhczxUYWI+OnNldFwgd3JhcCEKbWVudXRyYW5zIFRvZ2dsZVwgVyZyYXBcIGF0XCB3b3JkPFRhYj46c2V0XCBsYnIhCUFjdGl2YXIvRGVzYWN0aXZhclwgcXVpZWJyZVwgZW50cmVcICZwYWxhYnJhczxUYWI+OnNldFwgbGJyIQptZW51dHJhbnMgVG9nZ2xlXCAmZXhwYW5kLXRhYjxUYWI+OnNldFwgZXQhCQlBY3RpdmFyL0Rlc2FjdGl2YXJcICZleHBhbnNp825cIGRlXCBtYXJjYXNcIGRlXCBcdGFidWxhZG88VGFiPjpzZXRcIGV0IQptZW51dHJhbnMgVG9nZ2xlXCAmYXV0by1pbmRlbnQ8VGFiPjpzZXRcIGFpIQkJQWN0aXZhci9EZXNhY3RpdmFyXCAmYXV0by1zYW5ncmFkbzxUYWI+OnNldFwgYWkhCm1lbnV0cmFucyBUb2dnbGVcICZDLWluZGVudGluZzxUYWI+OnNldFwgY2luIQkJQWN0aXZhci9EZXNhY3RpdmFyXCBzYW5ncmFkb1wgJkM8VGFiPjpzZXRcIGNpbiEKCiIgb3RoZXIgb3B0aW9ucwptZW51dHJhbnMgJlNoaWZ0d2lkdGgJCQlBbmNodXJhXCBkZWxcICZzYW5ncmFkbwoKbWVudXRyYW5zIFNvZnRcICZUYWJzdG9wCQkmVGFidWxhZG9cIKtibGFuZG+7CgptZW51dHJhbnMgVGUmeHRcIFdpZHRoXC5cLlwuCQlBbmNodXJhXCBkZWxcIHRlJnh0b1wuXC5cLgpsZXQgZzptZW51dHJhbnNfdGV4dHdpZHRoX2RpYWxvZyA9ICJJbnRyb2R1emNhIGVsIG51ZXZvIGFuY2hvIGRlbCB0ZXh0byAoMCBwYXJhIGRlc2FjdGl2YXIgZWwgcXVpZWJyZSBkZSBs7W5lYSk6ICIKCm1lbnV0cmFucyAmRmlsZVwgRm9ybWF0XC5cLlwuCQkmRm9ybWF0b1wgZGVsXCBhcmNoaXZvXC5cLlwuCmxldCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2RpYWxvZyA9ICJTZWxlY2Npb25lIGVsIGZvcm1hdG8gcGFyYSBlc2NyaWJpciBlbCBhcmNoaXZvIgoKbWVudXRyYW5zIEMmb2xvclwgU2NoZW1lCQlFc3F1ZW1hXCBkZVwgYyZvbG9yZXMKbWVudXRyYW5zIGJsdWUJCWF6dWwKbWVudXRyYW5zIGRhcmtibHVlCWF6dWxcIG9zY3VybwptZW51dHJhbnMgZGVmYXVsdAlvcmlnaW5hbAptZW51dHJhbnMgZGVzZXJ0CWRlc2llcnRvCm1lbnV0cmFucyBldmVuaW5nCXZlc3BlcnRpbm8KbWVudXRyYW5zIG1vcm5pbmcJbWF0dXRpbm8KbWVudXRyYW5zIHBlYWNocHVmZgltZWxvY290824KbWVudXRyYW5zIHNoaW5lCQlicmlsbGFudGUKCm1lbnV0cmFucyBTZWxlY3RcIEZvJm50XC5cLlwuCQlTZWxlY2Npb25hclwgZnVlJm50ZVwuXC5cLgoKbWVudXRyYW5zICZLZXltYXAJQXNvY2lhY2nzblwgZGVcIHRlY2xhZG9zCm1lbnV0cmFucyBOb25lCQlOaW5ndW5hCm1lbnV0cmFucyBhY2NlbnRzCWFjZW50b3MKbWVudXRyYW5zIGFyYWJpYwnhcmFiZQptZW51dHJhbnMgY3plY2gJCWNoZWNvCm1lbnV0cmFucyBncmVlawkJZ3JpZWdvCm1lbnV0cmFucyBoZWJyZXcJaGVicmVvCm1lbnV0cmFucyBoZWJyZXdwCWhlYnJlb1wgZm9u6XRpY28KbWVudXRyYW5zIGxpdGh1YW5pYW4tYmFsdGljCWxpdHVhbm8tYuFsdGljbwptZW51dHJhbnMgcnVzc2lhbi1qY3VrZW4JcnVzby2ramN1a2VuuwptZW51dHJhbnMgcnVzc2lhbi1qY3VrZW53aW4JcnVzby2ramN1a2Vuu1wgV2luZG93cwptZW51dHJhbnMgcnVzc2lhbi15YXdlcnR5CXJ1c28tq3lhd2VydHm7Cm1lbnV0cmFucyBzZXJiaWFuLWxhdGluCQlzZXJiaW8tbGF0aW5vCm1lbnV0cmFucyBzZXJiaWFuCXNlcmJpbwptZW51dHJhbnMgc2xvdmFrCWVzbG92YWNvCgoKIiBQcm9ncmFtbWluZyBtZW51Cm1lbnV0cmFucyAmVG9vbHMJCQkmSGVycmFtaWVudGFzCm1lbnV0cmFucyAmSnVtcFwgdG9cIHRoaXNcIHRhZzxUYWI+Z15dCSZTYWx0YXJcIGFcIGVzdGVcIGV0aXF1ZXRhPFRhYj5nXl0KbWVudXRyYW5zIEp1bXBcICZiYWNrPFRhYj5eVAkJU2FsdGFyXCAmYXRy4XM8VGFiPl5UCm1lbnV0cmFucyBCdWlsZFwgJlRhZ3NcIEZpbGUJCUNyZWFyXCBhcmNoaXZvXCBkZVwgJmV0aXF1ZXRhc1wKbWVudXRyYW5zICZEaWZmCQkJCU1vZG9cIGRlXCAmZGlmZXJlbmNpYXMKbWVudXRyYW5zICZGb2xkaW5nCQkJJlBsZWdhZG8KbWVudXRyYW5zICZNYWtlPFRhYj46bWFrZQkJRWplY3V0YXJcIKsmTWFrZbs8VGFiPjptYWtlCm1lbnV0cmFucyAmTGlzdFwgRXJyb3JzPFRhYj46Y2wJCSZMaXN0YVwgZGVcIGVycm9yZXM8VGFiPjpjbAptZW51dHJhbnMgTCZpc3RcIE1lc3NhZ2VzPFRhYj46Y2whCUwmaXN0YVwgZGVcIG1lbnNhamVzPFRhYj46Y2whCm1lbnV0cmFucyAmTmV4dFwgRXJyb3I8VGFiPjpjbgkJJkVycm9yXCBzaWd1aWVudGU8VGFiPjpjbgptZW51dHJhbnMgJlByZXZpb3VzXCBFcnJvcjxUYWI+OmNwCUVycm9yXCBwJnJldmlvPFRhYj46Y3AKbWVudXRyYW5zICZPbGRlclwgTGlzdDxUYWI+OmNvbGQJTGlzdGFcIGRlXCAmdmllam9zXCBhXCBudWV2b3M8VGFiPjpjb2xkCm1lbnV0cmFucyBOJmV3ZXJcIExpc3Q8VGFiPjpjbmV3CUxpc3RhXCBkZVwgJm51ZXZvc1wgYVwgdmllam9zPFRhYj46Y25ldwptZW51dHJhbnMgRXJyb3JcICZXaW5kb3cJCVZlbiZ0YW5hXCBkZVwgZXJyb3JlcwptZW51dHJhbnMgJlNldFwgQ29tcGlsZXIJCUVzY28mZ2VyXCBlbFwgY29tcGlsYWRvclwgYVwgdXNhcgptZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAlDb252ZXJ0aXJcIGFcIGZvcm1hdG9cICZoZXhhZGVjaW1hbDxUYWI+OiUheHhkCm1lbnV0cmFucyBDb252ZSZydFwgYmFjazxUYWI+OiUheHhkXCAtcgkmQ29udmVydGlyXCBhbFwgZm9ybWF0b1wgb3JpZ2luYWw8VGFiPjolIXh4ZFwgLXIKCiIgVG9vbHMuU3BlbGxpbmcgTWVudQptZW51dHJhbnMgJlNwZWxsaW5nCQkJCUNvcnJlY2Np825cIG9ydG9ncuFmaWNhCm1lbnV0cmFucyAmU3BlbGxcIENoZWNrXCBPbgkJCSZBY3RpdmFyXCBjb3JyZWNjafNuXCBvcnRvZ3LhZmljYQptZW51dHJhbnMgU3BlbGxcIENoZWNrXCAmT2ZmCQkJJkRlc2FjdGl2YXJcIGNvcnJlY2Np825cIG9ydG9ncuFmaWNhCm1lbnV0cmFucyBUb1wgJk5leHRcIGVycm9yPFRhYj5dcwkJJlNpZ3VpZW50ZVwgZXJyb3I8VGFiPl1zCm1lbnV0cmFucyBUb1wgJlByZXZpb3VzXCBlcnJvcjxUYWI+W3MgIAkJRXJyb3JcICZwcmVjZWRlbnRlPFRhYj5bcyAKbWVudXRyYW5zIFN1Z2dlc3RcICZDb3JyZWN0aW9uczxUYWI+ej0JCVN1Z2VyaXJcICZjb3JyZWNjafNuPFRhYj56PQptZW51dHJhbnMgJlJlcGVhdFwgY29ycmVjdGlvbjxUYWI+OnNwZWxscmVwYWxsCSZSZXBldGlyXCBjb3JyZWNjafNuPFRhYj46c3BlbGxyZXBhbGwKYW4gNDAuMzM1LjIwNSAmVG9vbHMuJlNwZWxsaW5nLkNhc3RlbGxhbm9cIChlcykJOnNldCBzcGw9ZXMgc3BlbGw8Q1I+Cm1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuIgkJSW5nbOlzCm1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2F1IgkJSW5nbOlzXCAoZW5fYXUpCm1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2NhIgkJSW5nbOlzXCAoZW5fY2EpCm1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2diIgkJSW5nbOlzXCAoZW5fZ2IpCm1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX256IgkJSW5nbOlzXCAoZW5fbnopCm1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX3VzIgkJSW5nbOlzXCAoZW5fdXMpCgptZW51dHJhbnMgJkZpbmRcIE1vcmVcIExhbmd1YWdlcwkJJkJ1c2Nhclwgb3RyYXNcIGxlbmd1YXMKCiIgVG9vbHMuRm9sZCBNZW51Cm1lbnV0cmFucyAmRW5hYmxlL0Rpc2FibGVcIGZvbGRzPFRhYj56aQkJJkFjdGl2YXIvRGVzYWN0aXZhclwgcGxpZWd1ZXM8VGFiPnppCm1lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56dgkJJlZlclwgbO1uZWFcIGRlbFwgY3Vyc29yPFRhYj56dgptZW51dHJhbnMgVmllJndcIEN1cnNvclwgTGluZVwgb25seTxUYWI+ek16eAlWZSZyXCBz82xvXCBsYVwgbO1uZWFcIGRlbFwgY3Vyc29yPFRhYj56TXp4Cm1lbnV0cmFucyBDJmxvc2VcIG1vcmVcIGZvbGRzPFRhYj56bQkJQyZlcnJhclwgbeFzXCBwbGllZ3VlczxUYWI+em0KbWVudXRyYW5zICZDbG9zZVwgYWxsXCBmb2xkczxUYWI+ek0JCSZDZXJyYXJcIHRvZG9zXCBsb3NcIHBsaWVndWVzPFRhYj56TQptZW51dHJhbnMgTyZwZW5cIG1vcmVcIGZvbGRzPFRhYj56cgkJQWJyaXJcICZt4XNcIHBsaWVndWVzPFRhYj56cgptZW51dHJhbnMgJk9wZW5cIGFsbFwgZm9sZHM8VGFiPnpSCQkmQWJyaXJcIHRvZG9zXCBsb3NcIHBsaWVndWVzPFRhYj56UgoiIGZvbGQgbWV0aG9kCm1lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQkJCSZN6XRvZG9cIGRlXCBwbGVnYWRvCiIgY3JlYXRlIGFuZCBkZWxldGUgZm9sZHMKbWVudXRyYW5zIENyZWF0ZVwgJkZvbGQ8VGFiPnpmCQkJQ3JlYXJcICZwbGllZ3VlPFRhYj56ZgptZW51dHJhbnMgJkRlbGV0ZVwgRm9sZDxUYWI+emQJCQkmU3VwcmltaXJcIHBsaWVndWU8VGFiPnpkCm1lbnV0cmFucyBEZWxldGVcICZBbGxcIEZvbGRzPFRhYj56RAkJU3VwcmltaXJcICZ0b2Rvc1wgbG9zXCBwbGllZ3VlczxUYWI+ekQKIiBtb3ZpbmcgYXJvdW5kIGluIGZvbGRzCm1lbnV0cmFucyBGb2xkXCBjb2wmdW1uXCB3aWR0aAkJCUEmbmNodXJhXCBkZVwgY29sdW1uYVwgZGVsXCBwbGllZ3VlCgoiIFRvb2xzLkRpZmYgTWVudQptZW51dHJhbnMgJlVwZGF0ZQkmQWN0dWFsaXphcgptZW51dHJhbnMgJkdldFwgQmxvY2sJJk9idGVuZXJcIGJsb3F1ZQptZW51dHJhbnMgJlB1dFwgQmxvY2sJJlBvbmVyXCBibG9xdWUKCiJUb29scy5FcnJvciBNZW51Cm1lbnV0cmFucyAmVXBkYXRlPFRhYj46Y3dpbgkmQWN0dWFsaXphcgptZW51dHJhbnMgJk9wZW48VGFiPjpjb3BlbglBJmJyaXIKbWVudXRyYW5zICZDbG9zZTxUYWI+OmNjbG9zZQkmQ2VycmFyCgoiIE5hbWVzIGZvciBidWZmZXIgbWVudS4KbWVudXRyYW5zICZCdWZmZXJzCQkmQnVmZmVycwptZW51dHJhbnMgJlJlZnJlc2hcIG1lbnUJJlJlZnJlc2NhclwgbWVu+gptZW51dHJhbnMgJkRlbGV0ZQkJJlN1cHJpbWlyCm1lbnV0cmFucyAmQWx0ZXJuYXRlCQkmQWx0ZXJuYXIKbWVudXRyYW5zICZOZXh0CQkJU2kmZ3VpZW50ZQptZW51dHJhbnMgJlByZXZpb3VzCQkmUHJldmlvCmxldCBnOm1lbnV0cmFuc19ub19maWxlID0gIltTaW4gYXJjaGl2b10iCgoiIFdpbmRvdyBtZW51Cm1lbnV0cmFucyAmV2luZG93CQkJJlZlbnRhbmEKbWVudXRyYW5zICZOZXc8VGFiPl5XbgkJCVZlbnRhbmFcICZudWV2YTxUYWI+XlduCm1lbnV0cmFucyBTJnBsaXQ8VGFiPl5XcwkJJkRpdmlkaXJcIGxhXCB2ZW50YW5hPFRhYj5eV3MKbWVudXRyYW5zIFNwJmxpdFwgVG9cICM8VGFiPl5XXl4JRCZpdmlkaXJcIGVuXCBlbFwgbWFyY2Fkb3JcICgjKTxUYWI+XldeXgptZW51dHJhbnMgU3BsaXRcICZWZXJ0aWNhbGx5PFRhYj5eV3YgICAgRGl2aWRpclwgJnZlcnRpY2FsbWVudGU8VGFiPl5XdgptZW51dHJhbnMgU3BsaXRcIEZpbGVcIEUmeHBsb3JlcgkmQWJyaXJcIGVsXCCrRXhwbG9yYWRvclwgZGVcIGFyY2hpdm9zuwptZW51dHJhbnMgJkNsb3NlPFRhYj5eV2MJCSZDZXJyYXJcIGVzdGFcIHZlbnRhbmE8VGFiPl5XYwptZW51dHJhbnMgQ2xvc2VcICZPdGhlcihzKTxUYWI+XldvCUNlcnJhclwgJm90cmEocylcIHZlbnRhbmEocyk8VGFiPl5XbwptZW51dHJhbnMgTW92ZVwgJlRvCQkJTW92JmVyXCBhCm1lbnV0cmFucyAmVG9wPFRhYj5eV0sJCQkmQXJyaWJhPFRhYj5eV0sKbWVudXRyYW5zICZCb3R0b208VGFiPl5XSgkJQSZiYWpvPFRhYj5eV0oKbWVudXRyYW5zICZMZWZ0XCBzaWRlPFRhYj5eV0gJCUxhZG9cICZpenF1aWVyZG88VGFiPl5XSAptZW51dHJhbnMgJlJpZ2h0XCBzaWRlPFRhYj5eV0wJCUxhZG9cICZkZXJlY2hvPFRhYj5eV0wKbWVudXRyYW5zIFJvdGF0ZVwgJlVwPFRhYj5eV1IJCSZSb3RhclwgaGFjaWFcIGFycmliYTxUYWI+XldSCm1lbnV0cmFucyBSb3RhdGVcICZEb3duPFRhYj5eV3IJCVJvdGFyXCBoYWNpYVwgYSZiYWpvPFRhYj5eV3IKbWVudXRyYW5zICZFcXVhbFwgU2l6ZTxUYWI+Xlc9CQlNaXNtb1wgJnRhbWHxbzxUYWI+Xlc9Cm1lbnV0cmFucyAmTWF4XCBIZWlnaHQ8VGFiPl5XXwkJQWx0dXJhXCAmbeF4aW1hPFRhYj5eV18KbWVudXRyYW5zIE0maW5cIEhlaWdodDxUYWI+XlcxXwkJQWx0dXJhXCBt7SZuaW1hPFRhYj5eVzFfCm1lbnV0cmFucyBNYXhcICZXaWR0aDxUYWI+XldcfAkJQW5jaHVyYVwgbeEmeGltYTxUYWI+XldcfAptZW51dHJhbnMgTWluXCBXaWR0Jmg8VGFiPl5XMVx8CQlBbmMmaHVyYVwgbe1uaW1hPFRhYj5eVzFcfAoKIiBUaGUgcG9wdXAgbWVudQptZW51dHJhbnMgJlVuZG8JCQkmRGVzaGFjZXIKbWVudXRyYW5zIEN1JnQJCQlDb3ImdGFyCm1lbnV0cmFucyAmQ29weQkJCSZDb3BpYXIKbWVudXRyYW5zICZQYXN0ZQkJJlBlZ2FyCm1lbnV0cmFucyAmRGVsZXRlCQkmQm9ycmFyCm1lbnV0cmFucyBTZWxlY3RcIEJsb2Nrd2lzZQlTZWxlY2Npb25hclwgcG9yXCBibG9xdWUKbWVudXRyYW5zIFNlbGVjdFwgJldvcmQJCVNlbGVjY2lvbmFyXCAmcGFsYWJyYQptZW51dHJhbnMgU2VsZWN0XCAmTGluZQkJU2VsZWNjaW9uYXJcIHVuYVwgJmztbmVhCm1lbnV0cmFucyBTZWxlY3RcICZCbG9jawlTZWxlY2Npb25hclwgdW5cICZibG9xdWUKbWVudXRyYW5zIFNlbGVjdFwgJkFsbAkJU2VsZWNjaW9uYXJcICZ0b2RvCgoiIFRoZSBHVUkgdG9vbGJhcgppZiBoYXMoInRvb2xiYXIiKQogIGlmIGV4aXN0cygiKkRvX3Rvb2xiYXJfdG1lbnUiKQogICAgZGVsZnVuIERvX3Rvb2xiYXJfdG1lbnUKICBlbmRpZgogIGZ1biBEb190b29sYmFyX3RtZW51KCkKICAgIHRtZW51IFRvb2xCYXIuT3BlbgkJQWJyaXIgYXJjaGl2bwogICAgdG1lbnUgVG9vbEJhci5TYXZlCQlHdWFyZGFyIGFyY2hpdm8KICAgIHRtZW51IFRvb2xCYXIuU2F2ZUFsbAlHdWFyZGFyIHRvZG9zIGxvcyBhcmNoaXZvcwogICAgdG1lbnUgVG9vbEJhci5QcmludAkJSW1wcmltaXIKICAgIHRtZW51IFRvb2xCYXIuVW5kbwkJRGVzaGFjZXIKICAgIHRtZW51IFRvb2xCYXIuUmVkbwkJUmVoYWNlcgogICAgdG1lbnUgVG9vbEJhci5DdXQJCUNvcnRhcgogICAgdG1lbnUgVG9vbEJhci5Db3B5CQlDb3BpYXIKICAgIHRtZW51IFRvb2xCYXIuUGFzdGUJCVBlZ2FyCiAgICB0bWVudSBUb29sQmFyLkZpbmQJCUJ1c2Nhci4uLgogICAgdG1lbnUgVG9vbEJhci5GaW5kTmV4dAlCdXNjYXIgc2lndWllbnRlCiAgICB0bWVudSBUb29sQmFyLkZpbmRQcmV2CUJ1c2NhciBwcmVjZWRlbnRlCiAgICB0bWVudSBUb29sQmFyLlJlcGxhY2UJQnVzY2FyIHkgcmVlbXBsYXphcgogICAgaWYgMAkiIGRpc2FibGVkOyBUaGVzZSBhcmUgaW4gdGhlIFdpbmRvd3MgbWVudQogICAgICB0bWVudSBUb29sQmFyLk5ldwkJVmVudGFuYSBudWV2YQogICAgICB0bWVudSBUb29sQmFyLldpblNwbGl0CURpdmlkaXIgdmVudGFuYQogICAgICB0bWVudSBUb29sQmFyLldpbk1heAlBbHR1cmEgbeF4aW1hCiAgICAgIHRtZW51IFRvb2xCYXIuV2luTWluCUFsdHVyYSBt7W5pbWEKICAgICAgdG1lbnUgVG9vbEJhci5XaW5WU3BsaXQJRGl2aWRpciB2ZXJ0aWNhbG1lbnRlCiAgICAgIHRtZW51IFRvb2xCYXIuV2luTWF4V2lkdGgJQW5jaHVyYSBt4XhpbWEKICAgICAgdG1lbnUgVG9vbEJhci5XaW5NaW5XaWR0aAlBbmNodXJhIG3tbmltYQogICAgICB0bWVudSBUb29sQmFyLldpbkNsb3NlCUNlcnJhciB2ZW50YW5hCiAgICBlbmRpZgogICAgdG1lbnUgVG9vbEJhci5Mb2FkU2VzbglDYXJnYXIgc2VzafNuCiAgICB0bWVudSBUb29sQmFyLlNhdmVTZXNuCUd1YXJkYXIgc2VzafNuCiAgICB0bWVudSBUb29sQmFyLlJ1blNjcmlwdAlFamVjdXRhciB1biBhcmNoaXZvIGRlIPNyZGVuZXMKICAgIHRtZW51IFRvb2xCYXIuTWFrZQkJRWplY3V0YXIgq01ha2W7CiAgICB0bWVudSBUb29sQmFyLlNoZWxsCQlBYnJpciB1biBpbnTpcnByZXRlIGRlIGNvbWFuZG9zCiAgICB0bWVudSBUb29sQmFyLlJ1bkN0YWdzCUdlbmVyYXIgdW4gYXJjaGl2byBkZSBldGlxdWV0YXMKICAgIHRtZW51IFRvb2xCYXIuVGFnSnVtcAlTYWx0YXIgYSB1bmEgZXRpcXVldGEKICAgIHRtZW51IFRvb2xCYXIuSGVscAkJQXl1ZGEKICAgIHRtZW51IFRvb2xCYXIuRmluZEhlbHAJQnVzY2FyIGVuIGxhIGF5dWRhLi4uCiAgZW5kZnVuCmVuZGlmCgoiIFN5bnRheCBtZW51Cm1lbnV0cmFucyAmU3ludGF4CQkJJlNpbnRheGlzCm1lbnV0cmFucyAmU2hvd1wgZmlsZXR5cGVzXCBpblwgbWVudQkmTW9zdHJhclwgbGlzdGFzXCBkZVwgq3RpcG9cIGRlXCBhcmNoaXZvuwptZW51dHJhbnMgU2V0XCAnJnN5bnRheCdcIG9ubHkJCUFjdGl2YXJcIHPzbG9cIHNpbnRheGlzCm1lbnV0cmFucyBTZXRcICcmZmlsZXR5cGUnXCB0b28JCUFjdGl2YXJcIHRhbWJp6W5cIKt0aXBvXCBkZVwgYXJjaGl2b7sKbWVudXRyYW5zICZPZmYJCQkJJkRlc2FjdGl2YXJcIHNpbnRheGlzCm1lbnV0cmFucyAmTWFudWFsCQkJU2ludGF4aXNcICZtYW51YWwKbWVudXRyYW5zIEEmdXRvbWF0aWMJCQlTaW50YXhpc1wgYSZ1dG9t4XRpY2EKbWVudXRyYW5zIG9uL29mZlwgZm9yXCAmVGhpc1wgZmlsZQlBY3RpdmFyL0Rlc2FjdGl2YXJcIGVuXCBlcyZ0ZVwgYXJjaGl2bwptZW51dHJhbnMgQ28mbG9yXCB0ZXN0CQkJJlBydWViYVwgZGVcIGNvbG9yZXMKbWVudXRyYW5zICZIaWdobGlnaHRcIHRlc3QJCVBydWViYVwgZGVcICZyZXNhbHRhZG8KbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSFRNTAkJJkNvbnZlcnRpclwgYVwgSFRNTAoKIiBGaW5kIEhlbHAgZGlhbG9nIHRleHQKbGV0IGc6bWVudXRyYW5zX2hlbHBfZGlhbG9nID0gIkludHJvZHV6Y2EgdW4gbm9tYnJlIGRlIGNvbWFuZG8gbyBwYWxhYnJhIHBhcmEgb2J0ZW5lciBheXVkYTtcblxuQW50ZXBvbmdhIGlfIHBhcmEgY29tYW5kb3MgZGUgZW50cmFkYSAoZS5nLjogaV9DVFJMLVgpXG5BbnRlcG9uZ2EgY18gcGFyYSBjb21hbmRvcyBkZSBsYSBs7W5lYSBkZSBjb21hbmRvcyAoZS5nLjogY188RGVsPilcbkFudGVwb25nYSBgIHBhcmEgdW4gbm9tYnJlIGRlIG9wY2nzbiAoZS5nLjogYHNoaWZ0d2lkdGhgKSIKCmxldCAmY3BvID0gczprZWVwY3BvCnVubGV0IHM6a2VlcGNwbwo=